Firebug和自我调用的匿名函数

时间:2012-06-07 07:45:59

标签: javascript firebug anonymous-function

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

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

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

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

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

第一个根本没发射。第二个只是说DOM选项卡中的MYAPP为undefined

有解决方法吗?

1 个答案:

答案 0 :(得分:2)

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

在第二个版本中,您的函数将被执行,其结果将分配给MYAPP。但是你的函数似乎没有返回任何内容,因此MYAPP保持未定义。

有关此模式的说明,请参阅YUIBlog上的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.");
        }
    };

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

因此,您的函数基本上返回一个包含所有公共成员的对象。然后,您也可以使用Firebug访问它们。