在Javascript中访问兄弟名称空间,在SEAF中更改名称空间变量

时间:2012-08-17 00:39:20

标签: javascript jquery oop namespaces closures

我在找出项目的命名空间时遇到了麻烦。

我的命名空间到目前为止看起来像这样:

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));

但由于某种原因,第二,NS.App.init()调用不使用更新的NS.App.data变量。我该如何解决这个问题?

另外,如何引用NS.App中的其他命名空间?例如,如果我想在NS.App中使用NS.Utils?

1 个答案:

答案 0 :(得分:2)

alert(data)更改为alert(this.data)