http://addyosmani.com/resources/essentialjsdesignpatterns/book/#modulepatternjavascript

我正在经历上面的杰作。我仍然无法从以上文章中得到两件事。

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" );


相关问题:
JavaScript design pattern: difference between module pattern and revealing module pattern?

我从上述问题中了解了很多部分。任何人都可以将上面的revealing module pattern转换为传统的module pattern,以便我可以看到差异。

最佳答案

模块模式代码如下所示:您可以看到jsfiddle

var myModule = (function () {

    var privateVar = "Ben Cherry";

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

    return {
        setName: function( strName ) {
            privateVar = strName;
        },
        greeting: "Hey there!",
        getName: function() {
            privateFunction();
        }
    };

})();
myModule.setName( "Paul Kinlan" );

09-30 13:28
查看更多