我是新来学习javascript的人。我正在尝试创建一个计算内容的函数,然后将计算的最终结果存储在全局变量中。
我显然做错了,因为它正在将函数的整个代码写入文档中,而不是仅仅写入结果。
var myNumbers = function myCalculation () {
var myCalc1 = 4 + 6;
var myCalc2 = myCalc1 + 100;
var myCalc3 = myCalc2 + 20;
return myCalc3
}
document.write(myNumbers);
答案 0 :(得分:3)
myNumbers
是对函数的引用,而不是对该函数的调用结果。
我想你是说:
function myCalculation () {
var myCalc1 = 4 + 6;
var myCalc2 = myCalc1 + 100;
var myCalc3 = myCalc2 + 20;
return myCalc3
}
var myNumbers = myCalculation();
document.write(myNumbers);
What is the difference between a function call and function reference?
答案 1 :(得分:1)
您可以通过多种方式执行此操作。但是,首先,您必须了解在javascript中定义函数的方式。我在这里提供两种方式。有关更多信息,请阅读this和this。
function add(a, b) {
let c = a + b;
return c;
}
let add = function(a, b) {
let c = a + b;
return c;
}
您可以使用它们中的任何一个声明函数,尽管它们之间存在一些差异。但是,对于您的用例来说,这不会有问题。
因此,您可以如下声明myCalculation
:
function myCalculation () {
var myCalc1 = 4 + 6;
var myCalc2 = myCalc1 + 100;
var myCalc3 = myCalc2 + 20;
return myCalc3;
}
或
let myCalculation = function() {
var myCalc1 = 4 + 6;
var myCalc2 = myCalc1 + 100;
var myCalc3 = myCalc2 + 20;
return myCalc3;
}
然后,您可以执行以下操作:
let myNumbers = myCalculation();
document.write(myNumbers);
还有另一种方法,您可以通过立即调用匿名函数来执行此操作而无需创建myCalculation
函数(注意:这是使用函数表达式创建的,请阅读我提供的链接):>
let myNumbers = (function myCalculation() {
var myCalc1 = 4 + 6;
var myCalc2 = myCalc1 + 100;
var myCalc3 = myCalc2 + 20;
return myCalc3;
})();
// and then
document.write(myNumbers);
您应该根据自己的情况选择...
答案 2 :(得分:0)
通过调用 myCalculation()最终结果存储,结果自动存储在全局变量中。
var myNumbers = myCalculation();
function myCalculation () {
var myCalc1 = 4 + 6;
var myCalc2 = myCalc1 + 100;
var myCalc3 = myCalc2 + 20;
return myCalc3
}
document.write(myNumbers);