コードをモジュールに分割しようとしていますが、アプリの他のモジュールを参照する際に問題が発生します。
MYAPP = (function(my_app)
{
var funcs = my_app.funcs;
var module2 =
{
stupid_function = function ()
{
var some_var = "auwesome!";
//let's call something from the other module...
funcs.do_whatever();
};
};
my_app.module2 = module2;
return my_app;
})(MYAPP);
問題は、MYAPP.funcsが変更されたときに発生します。たとえば、初期化して新しいメソッドを追加すると、クロージャー内に「funcs」が作成されたため、MYAPP.funcsのコピーがあり、必要な新しいものがありません。
これは、「funcs」がより多くのメソッドを取得する方法です...メソッドMYAPP.funcs.init()を実行すると、MYAPP.funcsが自動的に書き直されます。
var MYAPP = (function (my_app, $)
{
'use_strict';
my_app.funcs = {};
my_app.funcs.init = function ()
{
panel = my_app.dom.panel;
funcs = my_app.funcs;
query_fns = funcs.query;
my_app.funcs =
{
some_method: function () { ... },
do_whatever: function () { ... }
};
};
return my_app;
}(APP, jQuery));
前もって感謝します!!
誰にとっても面白い場合は...
私がモジュリングに使用している方法は、「タイトな拡張」ですhttp://webcache.googleusercontent.com/search?hl=es-419&q=cache%3Aadequatelygood.com%2F2010%2F3%2FJavaScript-Module-Pattern-In-Depth&btnG ==