1

我的基本设置是匿名自调用函数下的一大堆 Javascript:

(function () {
    ...
})();

我的问题是我似乎无法通过 DOM 选项卡访问此 ASI 函数中的对象。我尝试了以下两种方法:

var MYAPP = function () {
    ...
};

var MYAPP = (function () {
    ...
})();

第一个根本没有开火。第二个刚刚说的 MYAPPundefined在 DOM 选项卡中。

有没有解决的办法?

4

1 回答 1

2

在您的第一个版本中,您只是创建了一个名为 的函数MYAPP,但您并没有执行它。

在第二个版本中,你的函数被执行并且它的结果被赋值给MYAPP. 但是你的函数似乎没有返回任何东西,所以MYAPP保持未定义。

有关此模式的说明,请参阅YUIBlog 上的 Javascript 模块模式。他们的例子是这样的:

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

}(); // the parens here cause the anonymous function to execute and return

所以你的函数基本上返回一个包含所有公共成员的对象。然后,您也可以使用 Firebug 访问这些内容。

于 2012-06-07T08:15:08.440 回答