不在浏览器中时的Javascript全局对象
我有下面的脚本,它在浏览器中运行良好,但在没有全局对象“窗口”的ASP脚本上运行时就不行了。如何将其更改为使用全局对象而不是窗口不在浏览器中时的Javascript全局对象,javascript,Javascript,我有下面的脚本,它在浏览器中运行良好,但在没有全局对象“窗口”的ASP脚本上运行时就不行了。如何将其更改为使用全局对象而不是窗口 var $ = {} $.namespace = function() { var a=arguments, o=null, i, j, d; for (i=0; i<a.length; i=i+1) { d=a[i].split("."); o=window; for (j=0; j<d.
var $ = {}
$.namespace = function() {
var a=arguments, o=null, i, j, d;
for (i=0; i<a.length; i=i+1) {
d=a[i].split(".");
o=window;
for (j=0; j<d.length; j=j+1) {
o[d[j]]=o[d[j]] || {};
o=o[d[j]];
}
}
return o;
};
谢谢我想你可以使用这个代码
var $ = {}
var $this = this;
$.namespace = function() {
var a=arguments, o=null, i, j, d;
for (i=0; i<a.length; i=i+1) {
d=a[i].split(".");
o=$this;
for (j=0; j<d.length; j=j+1) {
o[d[j]]=o[d[j]] || {};
o=o[d[j]];
}
}
return o;
};
var$={}
var$this=这个;
$.namespace=function(){
变量a=参数,o=null,i,j,d;
为了(i=0;i不知道asp脚本,但在node.js中有global
变量,因此您可以使用o=window | | global;
是否要在窗口范围外声明变量?抱歉,我没有解释函数的用法。我编辑了我的原始帖子,抱歉。您的解决方案在最后一行myApp.test.myString中不起作用=“hello world”;虽然$.namespace(“myApp.test”);至少运行得很干净。谢谢您可以使用“this”引用全局对象。如果您共享所需的输出,会更好。我已经更新了代码。
var $ = {}
var $this = this;
$.namespace = function() {
var a=arguments, o=null, i, j, d;
for (i=0; i<a.length; i=i+1) {
d=a[i].split(".");
o=$this;
for (j=0; j<d.length; j=j+1) {
o[d[j]]=o[d[j]] || {};
o=o[d[j]];
}
}
return o;
};