dayName函数是一个带有私有变量的闭包 . 您可以访问该数组var
return names[number];
内部功能 . 将Number传递给名称以声明要捕获的数组中的哪个值 .
从本质上讲,这就是正在发生的事情
var dayName = function(number) {
return names[number];
};
names变量是私有的,只能由函数访问 . 所以返回名称进入函数并获取var以供使用 .
Your code.
var dayName = function() {
var names = ["Sunday", "Monday", "Tuesday", "Wednesday",
"Thursday", "Friday", "Saturday"];
return function(number) {
return names[number];
};
}();
第二个问题............
具有多个参数的dayName函数将仅使用第一个参数,因为第二个参数从未在函数中声明 . 您将收到一个未定义的错误 .
var dayName = function(param, otherParamNeedsToBeDeFinedHere) {
参数是在函数中声明和使用的变量 . 您可以创建尽可能多的内容,但不必在代码中全部使用它们 .
dayName(2);
// and
dayName(2,4);
如果函数至少有两个参数,两者都可以工作 .
Your code.
var dayName = function(param) {
console.log(param);
(function(otherParam) {
console.log(otherParam);
});
};
dayName(outerFunctionParam, innerFunctionParam);