1

プロジェクトの名前空間を理解するのに問題があります。

これまでのところ、私の名前空間は次のようになっています。

var NS = NS || {};
NS.Utils = NS.Utils || {};
NS.Models = NS.Models || {};
NS.Views = NS.Views || {};

NS.App = (function () {

this.data = "hello";

var init = function () {

    alert(data);

};

return {

    data: this.data,
    init: init,

};

} ());

そして、私はこれでそれを初期化します:

(function ($, global, data) {

$(global).click(function() {

    NS.App.init();

});

NS.App.data = "hello testing";
NS.App.init();


}(jQuery, window, data));

しかし、何らかの理由で、2番目のNS.App.init()呼び出しは、更新されたNS.App.data変数を使用しません。どうすればこれを修正できますか?

また、NS.App内の他の名前空間を参照するにはどうすればよいですか?たとえば、NS.App内でNS.Utilsを使用したい場合はどうすればよいですか?

4

1 に答える 1

2

に変更alert(data)alert(this.data)ます。

于 2012-08-17T00:49:15.673 に答える