1

我有一个 javascript 库使用“显示模块模式”公开其成员。我有一个特殊的需要,我需要访问它的Private Member。有人可以在这方面帮助我吗?有什么提示和技巧吗?如果有人能对此有所了解,我将不胜感激。提前致谢。

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 ”????

有什么提示和技巧吗?如果有人能对此有所了解,我将不胜感激。提前致谢。

4

1 回答 1

1

您创建 的对象myRevealingModule,其中包含 a setName、 agreeting和 a getName。从这些,setName参考文献publicSetNamegetName参考文献publicGetName。反过来,publicGetName它完全符合您的需要:调用privateFunction.

所以,回答你的问题:

myRevealingModule.publicGetName();

是您访问的方式privateFunction。你甚至可以改变privateVar这种方式的价值:

myRevealingModule.publicSetName("foobar");
myRevealingModule.publicGetName();
于 2015-07-14T14:40:55.110 回答