function makeMultiplier (multiplier){
var myFunc = function (x){
return multiplier * x;
}
return myFunc;
}
var multiplyBy3 = makeMultiplier(3);
console.log(makeMultiplier(3)(10));在这里,我不理解var multiplyBy3变量为什么以及如何充当对上面提到的myFunc函数的引用
发布于 2020-07-29 18:53:46
执行顺序:
makeMultiplier是为定义的
使用arg3调用
makeMultiplier并返回一个新函数,该返回函数存储在名为multiplyBy3.的变量中
使用makeMultiplier调用的
调用
在JavaScript中,所有非基本体对象的赋值都存储为引用,而不是值。示例变量赋值,将参数传递给函数,它基本上是赋值给函数中的局部变量。
但是,使用arg3对multiplier的第二次调用是不同的函数,引用是不同的。
你也可以用Object.is()静态方法来测试它们。
发布于 2020-07-29 18:54:11
执行函数makeMultiplier的返回值为函数myFunc。这将被分配给变量multiplyBy3。因此,它将作为对myFunc函数引用
https://stackoverflow.com/questions/63151935
复制相似问题