问题描述
var unique = function(){
var n=0;
return function(){
return {
inc : function(){
n++;
console.log(n);
}
};
};
};
console.log(unique()().inc());
上面的代码先打印1,然后再打印undefined,打印undefined的原因是什么?
1楼
因为您要求记录inc
返回的值,但它不返回任何内容。
如果您不想打印任何东西,
console.log(unique()().inc());
应该
unique()().inc();
如果您希望打印出新的n
值,
inc : function(){ n++; console.log(n); }
应该
inc : function(){ n++; console.log(n); return n; }
2楼
您有2 console.log,一个在inc内部(显示1),另一个在最后一行(显示未定义)。
您可以添加return n;
在inc
的第一个console
之后
inc : function(){
n++;
console.log(n);
return n;
}