JavaScript模块分配模式

时间:2015-07-23 12:02:01

标签: javascript

我正在阅读A JavaScript Module Pattern,并想知道为什么要通过触发这样的即时匿名函数来进行模块分配呢:

YAHOO.myProject.myModule = function () {

    return  {
        myPublicProperty: "I'm accessible as YAHOO.myProject.myModule.myPublicProperty.",
        myPublicMethod: function () {
            YAHOO.log("I'm accessible as YAHOO.myProject.myModule.myPublicMethod.");
        }
    };

}();

而不是直接将对象分配给YAHOO.myProject.myModule,如下所示:

YAHOO.myProject.myModule = {
        myPublicProperty: "I'm accessible as YAHOO.myProject.myModule.myPublicProperty.",
        myPublicMethod: function () {
            YAHOO.log("I'm accessible as YAHOO.myProject.myModule.myPublicMethod.");
        }
    };

1 个答案:

答案 0 :(得分:2)

在那个例子中,没有任何意义。您没有阅读足够的链接文档。

第3节是在return语句之前的匿名函数中添加“私有”方法和变量。,这说明了为什么你想在这里使用IEFF。

您可以定义本地变量,这些变量可供您公开的函数访问,但不能直接访问。