Javascript无法访问函数的返回值
Javascript Return value from function not accessible
我有一个返回值的javascript函数。但是,我无法在函数之外获得要返回的值。我已经研究过了,但无法弄清楚这个问题。它说最后一行代码中的grossResults是未定义的。退货难道不会让它变得触手可及吗?
"use script";
var hourlyRate = prompt("Enter hourly pay rate:", hourlyRate);
var totalHrsWorked = parseInt(prompt("Enter number of hours worked:", totalHrsWorked));
//function to calculate gross wages for an hourly employee
function grossWages (hourlyRate, totalHrsWorked){
var OTHours = totalHrsWorked - 40;
var regPay = (totalHrsWorked - OTHours) * hourlyRate;
var OTPay = (OTHours * (hourlyRate * 1.5)) + regPay;
grossResults = (OTHours > 0) ? OTPay : regPay;
return grossResults;
};
document.writeln("<br /><br />");
document.writeln("Pay rate entered: " + hourlyRate + "<br />");
document.writeln("Hours entered: " + totalHrsWorked + "<br />");
document.writeln("Gross Pay: $" + grossResults + "<br /><br />")
如注释中所述,您没有调用函数。Javascript支持一流的函数,这意味着您可以使用字符串/数字等函数并传递它们的引用,这就是为什么它在运行时不会出错的原因。
document.writeln("Gross Pay: $" + grossResults(hourlyRate, totalHrsWorked) + "<br /><br />")
上面的代码正确地调用了您的函数,并使用了您从提示中提取的参数!
有一些问题。
首先是理解javascript中的作用域。JS具有函数范围,这基本上意味着在函数内部声明的变量(和函数)只在该函数(包括其子函数)内部可见。有关更多详细信息,请参阅例如。JavaScript中变量的范围是什么?。我在这里跳过了所有关于继承的内容,它通过原型来工作,但它基本上只是定义对象之间的层次关系(这样他们就可以看到父对象拥有的变量/函数)。
scope在示例上下文中的意思是grossResults
是在函数grossWages
内部定义的,因此在该函数外部不可见。当函数grossWages
被调用时(在您的示例中从未发生过这种情况,但您试图实现的可能是var grossResults = grossWages()
——在这种情况下,grossWages()
返回其变量grossResults
的值,它不会将该变量暴露给该函数之外的上下文。
注意事项:"use script"可能应该是"use strict"。看见https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Strict_mode
- 根据是否解析了 Promise 从函数返回值
- Angular,函数在(模型)工厂中返回值
- Javascript中带有返回值的嵌套函数
- 从Ajax函数返回值
- HTML如何根据javascript函数的返回值限制文本输入
- 使用在函数外部声明的变量的 Javascript 返回值 + undefined
- 如何从嵌套的API函数返回值
- 如何记录调用另一个函数的函数的返回值
- 即使使用回调函数也无法返回值
- PHP 函数不会向 JavaScript 变量返回值
- 从异步函数返回值
- 我如何才能继续'如果'语句来比较作为参数的多个函数返回值
- 从节点中的回调函数返回值
- 从另一个文件访问函数的返回值
- 从JSP页面调用Java Script函数未返回值
- jquery csv函数,如何返回值
- Scala提升了如何运行javascript函数并将返回值存储在变量中
- 等待函数完成,然后将返回值分配给变量JS
- 来自函数 Javascript 的 NaN 返回值 ||函数执行顺序
- 在 html 输入字段中使用返回值函数