【发布时间】:2016-06-21 20:55:39
【问题描述】:
我已经搜索了这个问题,但似乎找不到它:如何将被调用函数中的参数直接传递给嵌套函数?比如下面的代码,来自"Eloquent Javascript:"
var dayName = function() {
var names = ["Sunday", "Monday", "Tuesday", "Wednesday",
"Thursday", "Friday", "Saturday"];
return function(number) {
return names[number];
};
}();
console.log(dayName(3));
// → Wednesday
参数3 被传递给dayName(),但dayName() 不直接接受任何参数。参数如何传递给嵌套的返回函数?嵌套函数本身没有返回,而是返回了一个值,这有什么不同?
最后,考虑这个伪代码,其中两个参数传递给dayName() 函数,dayName() 函数及其嵌套函数都接受参数:
var dayName = function(param) {
console.log(param);
(function(otherParam) {
console.log(otherParam);
});
};
dayName(outerFunctionParam, innerFunctionParam);
将一个参数传递给dayName() 函数并将第二个参数传递给嵌套函数的正确语法是什么,它在幕后是如何工作的?谢谢!
【问题讨论】:
-
@Tushar:虽然我的问题和我的问题都指向那本书中的同一段代码,但我们提出了两个非常不同的问题。
-
分配给
dayName的函数是IIFE,它返回另一个函数dayname= 内部函数 + 外部函数变量。 -
如果你理解了代码的工作原理,你的问题就会迎刃而解。 :)
-
@Tushar:谢谢,我会花一些时间来解决另一个问题,看看是否能解决我的问题 :)
标签: javascript scope arguments parameter-passing nested-function