将函数结果存储在全局变量中

时间:2020-08-15 17:49:29

标签: javascript

我是新来学习javascript的人。我正在尝试创建一个计算内容的函数,然后将计算的最终结果存储在全局变量中。

我显然做错了,因为它正在将函数的整个代码写入文档中,而不是仅仅写入结果。

 var myNumbers = function myCalculation () {
        var myCalc1 = 4 + 6;
        var myCalc2 = myCalc1 + 100;
        var myCalc3 = myCalc2 + 20;
        return myCalc3
}

document.write(myNumbers);

3 个答案:

答案 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中定义函数的方式。我在这里提供两种方式。有关更多信息,请阅读thisthis

  1. 常规方式:
function add(a, b) {
  let c = a + b;
  return c;
}
  1. 函数表达方式:
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);