当前位置: 代码迷 >> JavaScript >> 从函数调用返回对象的函数会打印未定义
  详细解决方案

从函数调用返回对象的函数会打印未定义

热度:38   发布时间:2023-06-07 15:54:21.0
var unique = function(){

var n=0;
return function(){

    return {

        inc : function(){
            n++;
            console.log(n);
        }

    };

 };
};

console.log(unique()().inc());

上面的代码先打印1,然后再打印undefined,打印undefined的原因是什么?

因为您要求记录inc返回的值,但它不返回任何内容。

如果您不想打印任何东西,

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),另一个在最后一行(显示未定义)。

您可以添加return n; inc的第一个console之后

    inc : function(){
        n++;
        console.log(n);
        return n;
    }
  相关解决方案