对于在其他地方提出的问题,我深表歉意,但是我所看到的所有信息并不能真正帮助我理解答案和最佳实践。
我正在尝试将显示模块模式用于javascript。我有一个基本的js文件,其中包含应用程序每一页所需的方法和属性。
然后每个页面都有其自己的js文件,该文件具有自己的唯一函数和变量,但还需要引用基本js文件中的变量。
我似乎真的误解了变量作用域,或者我设置它的方式在某种程度上非常糟糕,因为我得到的结果令人困惑。
问题:
我现在正在做的是这样:
var base = (function() {
init = function() {
url = $(location).attr('href');
url = url.substr(-1) === '/' ? url.slice(0, -1) : url;
segments = url.split('/');
baseUrl = this.segments[0] + '//' + this.segments[2] + '/';
resource = this.segments[3];
this.segments = segments; //need access to this across all pages
this.resource = resource; //need access to this across all pages
this.baseUrl = baseUrl; //need access to this across all pages
}
}
doStuffGlobally = function() {
//do stuff for all pages
}
return {
init: init,
baseUrl: this.baseUrl,
segments: this.segments,
resource: this.resource
};
}());
$(document).ready(function() {
base.init();
}
在另一页上,我正在这样做:
var otherPage = (function() {
init = function() {
//do otherPage stuff;
}
}
doStuff = function() {
base.doStuffGlobally(); //need to access this.
console.log(base.segments); //need to access this.
}
return {
init: init
};
}());
$(document).ready(function() {
otherPage.init();
}
答案 0 :(得分:1)
您的/etc/xinetd.conf
模块不需要init
方法,它不需要等待domready,但可以(并且应该)立即运行。所以写
base