var unique = function(){
var n=0;
return function(){
return {
inc : function(){
n++;
console.log(n);
}
};
};
};
console.log(unique()().inc());
上面的代码打印1然后未定义undefined被打印的原因是什么?
答案 0 :(得分:2)
因为您要求记录inc
返回的值,并且它不会返回任何内容。
如果您不想打印任何内容,
console.log(unique()().inc());
应该是
unique()().inc();
如果您希望打印n
的新值,
inc : function(){ n++; console.log(n); }
应该是
inc : function(){ n++; console.log(n); return n; }
答案 1 :(得分:2)
你有2个console.log,一个在inc内(打印1),另一个在最后一行,(打印未定义)。
您可以在return n;
console
之后添加inc
inc : function(){
n++;
console.log(n);
return n;
}