我在 JS 中遇到了一个问题,它真的在我的灵魂中燃烧!! 我想创建一个程序,提示用户输入他的名字,然后输入他的小时工资,然后输入他工作了多少小时? 喜欢: 请输入您的姓名: 萨利赫 输入您的时薪:20 输入工作时间:8
我需要这个程序来打印一条消息: 你好萨利赫 您的时薪是: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();
最佳答案
问题在于,在您的 calculatePayment()
函数中,您没有调用 getHourlyWage()
和 getHours()
函数并将它们相乘返回值,您正在乘以对函数本身的引用。
更改此行:
return this.getHourlyWage * this.getHours;
对此:
return this.getHourlyWage() * this.getHours();
(请注意添加的括号。)
关于javascript - JavaScript 中的 NaN 输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47745484/