Javascript:揭示模块模式。访问私人会员

时间:2015-07-14 13:47:05

标签: javascript class revealing-module-pattern

我有一个javascript库,使用' Revealing Module Pattern '公开其成员。我特别需要访问私人会员。有人可以帮我这方面吗?任何提示和技巧?如果有人能够对此有所了解,我深表感谢。在此先感谢。

Revealing Module Pattern by Addy Osmani

var myRevealingModule = (function () {

    var privateVar = "Ben Cherry",
        publicVar = "Hey there!";

    function privateFunction() {
        console.log( "Name: " + privateVar );
    }

    function publicSetName( strName ) {
        privateVar = strName;
    }

    function publicGetName() {
        privateFunction();
    }


    // Reveal public pointers to
    // private functions and properties

    return {
        setName: publicSetName,
        greeting: publicVar,
        getName: publicGetName
    };

})();

myRevealingModule.setName( "Paul Kinlan" );
myRevealingModule.getName();

// is there anyway to access 'privateFunction'????

无论如何都要访问' privateFunction '????

任何提示和技巧?如果有人能够对此有所了解,我深表感谢。在此先感谢。

1 个答案:

答案 0 :(得分:1)

您创建的myRevealingModule对象包含setNamegreetinggetName。从这些setName引用publicSetNamegetName引用publicGetName。轮到您publicGetName完全符合您的要求:致电privateFunction

所以,回答你的问题:

myRevealingModule.publicGetName();

是您访问privateFunction的方式。您甚至可以通过以下方式更改privateVar的值:

myRevealingModule.publicSetName("foobar");
myRevealingModule.publicGetName();
相关问题