1

私の基本的なセットアップは、匿名の自己呼び出し関数の下にあるJavascriptのヒープ全体です。

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

私の問題は、DOMタブを介してこのASI関数内のオブジェクトにアクセスできないように見えることです。私は次の両方を試しました:

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

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

最初のものはまったく発砲しませんでした。2つ目は、MYAPPがundefined[DOM]タブにあることを示しています。

これを回避する方法はありますか?

4

1 に答える 1

2

最初のバージョンでは、という名前の関数を作成しているだけMYAPPですが、実行していません。

2番目のバージョンでは、関数が実行され、その結果がに割り当てられ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 に答える