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

标签 javascript jquery javascript-objects

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; }

关于javascript - 调用从函数返回的对象的函数打印未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31884397/

相关文章:

javascript - outerHeight() 和 height() 给出 0,在事件中元素显示为 "display: block"之后

javascript - 更改运行php代码的链接的值

javascript - 依次触发 jQuery 事件

jquery - 从 onclick 事件中排除响应数据表 +

javascript - 在 friend 内部按friend.brand.id进行 Angular 过滤可以工作,但不能使用||当 NULL 时重置过滤器的未定义技巧

jquery - 转到类(class)链接

javascript - 使用 Object.create 而不是 setPrototypeof

javascript - John Resig 的 "Simple Javascript Inheritance"还可以吗?

javascript - 不使用构造函数调用模式时 .prototype 对象的用途是什么?

javascript - 防止虚拟键盘向上推内容