不在浏览器中的Javascript全局对象

时间:2015-05-19 10:21:04

标签: 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.length; j=j+1) {
            o[d[j]]=o[d[j]] || {};
            o=o[d[j]];
        }
    }
    return o;
};

这使我能够去:

$.namespace("myApp.test");
myApp.test.myString = "hello world";

感谢

1 个答案:

答案 0 :(得分:0)

我认为您可以使用此代码

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