2017-12-11 15 views
0

私は本当に私の魂の中で燃えるJSの問題を抱えています! 私は彼の名前の間に彼の時間の賃金、次に彼が働いていた時間を尋ねるプログラムを作りたいですか? のように: あなたの名前をしてください入力します。サレー はあなたの時給を入力します。 こんにちはサレ あなたの時給は、次のとおりです:20 $私が言うメッセージを印刷するには、このプログラムを必要とする8JavaScriptでのNaN出力

:20 は、労働時間を入力します。 勤務先:8時間 お支払いは:160 $

私が作ったプログラムは動作していますが、最後の行は計算されていません!それはNaNを印刷します!!

に私を助けてください、ここでのコードです:

function Worker(aName, anHourlyWage, numberOfHours) // initializing the worker function that asked in the question. 
 
{ 
 
    this.name = aName; 
 
    this.anHourlyWage = anHourlyWage; 
 
    this.numberOfHours = numberOfHours; 
 

 
    this.setHourlyWage = setHourlyWage; 
 
    this.getName = getName; 
 
    this.getHourlyWage = getHourlyWage; 
 
    this.getHours = getHours; 
 
    this.calculatePayment = calculatePayment; 
 
    this.printDetails = printDetails; 
 

 

 
} 
 

 
function setHourlyWage(setHourlyWage) { 
 
    this.anHourlyWage = anHourlyWage2; 
 
} 
 

 
function getName() { 
 
    return this.name; 
 
} 
 

 
function getHourlyWage() { 
 
    return this.anHourlyWage; 
 
} 
 

 
function getHours() { 
 
    return this.numberOfHours; 
 
} 
 

 
function calculatePayment() { 
 
    return this.getHourlyWage * this.getHours; //to return the multiplication of working hours function and hourly wage function 
 
} 
 

 
function printDetails() { 
 
    window.alert("Hello: " + this.getName() + 
 
       "\n Your Wage Is: " + this.getHourlyWage() + 
 
       " $" + "\n You Have Worked For: " + this.getHours() + " Hours" + 
 
       "\n Your Payment Is: " + this.calculatePayment() + " $"); 
 
} 
 

 

 
var name1 = window.prompt("Enter your name:", ""); 
 
var anHourlyWage1 = parseFloat(window.prompt("Enter the Hourly Wage:")); 
 
var numberOfHours1 = parseFloat(window.prompt("Enetr the working hours:")); 
 

 
var Worker1 = new Worker(name1, anHourlyWage1, numberOfHours1); 
 
Worker1.printDetails();

+0

あなたはthis'は 'setHourlyWage'、'のgetNameである 'どう思いますか'など? –

+0

@JaromandaX - これは最初の 'Worker1.printDetails()'呼び出しで設定された正しいオブジェクトですか? – nnnnnn

+0

はい、そうです。以前はそのようには見られませんでした。醜い –

答えて

1

問題は、あなたのcalculatePayment()機能であなたがgetHourlyWage()getHours()関数を呼び出し、その戻り値を乗算していないということですが関数自体への参照を乗算しています。

変更この行:これまで

return this.getHourlyWage * this.getHours; 

return this.getHourlyWage() * this.getHours(); 

(追加括弧に注意してください。)

+0

私はこれがtypoのカテゴリーに入ると考えています。 – RobG