因此,return function (n)
仍然返回最初作为增补赋予其父函数的值。但是我不明白为什么,当我没有传递 n 的值时,var digit_name = (function(){
确实return function(n){
从原始参数中获取了它的值。
特别是当我用var n = 4;
JS
var digit_name = (function(){
var names;
var n = 4;
return function(n){
if(!names){
names = ['zero','one','two','three'];
}
return names[n];
}
}());
console.info(digit_name(3)); //Three
return function(n)
另外,如果我用数字覆盖,return function(1)
我会SyntaxError: missing formal parameter
。我知道 return names[n] 不会知道什么n
,那么为什么不给出n is undefined
错误呢?