从函数打印返回的对象调用函数未定义
Invoking function of a returned object from function prints undefined
var unique = function(){
var n=0;
return function(){
return {
inc : function(){
n++;
console.log(n);
}
};
};
};
console.log(unique()().inc());
上面的代码打印 1 然后打印 undefined 打印 undefined 的原因是什么?
因为您要求记录由 inc
编辑的 return 值,但它 return 什么也没有。
如果您不想打印任何东西,
console.log(unique()().inc());
应该是
unique()().inc();
如果您希望打印 n
的新值,
inc : function(){ n++; console.log(n); }
应该是
inc : function(){ n++; console.log(n); return n; }
你有 2 个 console.log,一个在 inc 中(打印 1),另一个在最后一行,(打印 undefined)。
您可以在 inc
中的第一个 console
之后添加 return n;
inc : function(){
n++;
console.log(n);
return n;
}
var unique = function(){
var n=0;
return function(){
return {
inc : function(){
n++;
console.log(n);
}
};
};
};
console.log(unique()().inc());
上面的代码打印 1 然后打印 undefined 打印 undefined 的原因是什么?
因为您要求记录由 inc
编辑的 return 值,但它 return 什么也没有。
如果您不想打印任何东西,
console.log(unique()().inc());
应该是
unique()().inc();
如果您希望打印 n
的新值,
inc : function(){ n++; console.log(n); }
应该是
inc : function(){ n++; console.log(n); return n; }
你有 2 个 console.log,一个在 inc 中(打印 1),另一个在最后一行,(打印 undefined)。
您可以在 inc
console
之后添加 return n;
inc : function(){
n++;
console.log(n);
return n;
}