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

できません。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 に答える
2

privateMethodの各インスタンスに固有のものではありませんfoothis.関数自体ではなく、関数呼び出しの結果をログに記録する必要があるかもしれませんが、修飾子なしで参照してください。

console.log(privateMethod());
于 2013-03-28T17:25:11.767 に答える