0
var Foo = (function () {

    var foo = function() { };

    var privateMethod = function(){ };

    foo.prototype = {
        init: function() { 
            console.log(this.privateMethod); //undefined
        }
    };

    return foo;

})();

我知道我可以privateMethod不使用this指针直接访问。但由于我来自 c# 世界,我想将它用于可读性目的。

有没有办法使用指针引用我的“私有方法”?

4

2 回答 2

2

privateMethod并不特定于 的每个实例foo。只需在没有this.限定符的情况下引用它——尽管您可能想要记录函数调用的结果,而不是函数本身:

console.log(privateMethod());
于 2013-03-28T17:25:11.767 回答
2

你不能。您只能使用this来引用“公共”方法。如果你真的想使用something.method符号,你可以使用:

var Foo = (function () {

    var foo = function() { };

    var private = {
       privateMethod : function(){ };
    }

    foo.prototype = {
        init: function() { 
            console.log(private.privateMethod); 
        }
    };

    return foo;

})();
于 2013-03-28T17:25:28.537 回答