如何在javascript中定义新的全局对象

如何在javascript中定义新的全局对象,javascript,Javascript,嗨 创建一个唯一的全局对象,将函数和属性封装在这个对象中是一个很好的做法 if(!myglobalObject) myglobalObject ={}; 然而,这段代码不起作用,我得到一个错误说 ReferenceError:未定义myglobalObject 有人能解释一下我为什么会出错吗?如果window['myglobalObject']==未定义window.myglobalObject={} 如果不想从上下文中公开对象,可以执行如下smth: var myglobalObject=m

嗨 创建一个唯一的全局对象,将函数和属性封装在这个对象中是一个很好的做法

if(!myglobalObject) myglobalObject ={};
然而,这段代码不起作用,我得到一个错误说 ReferenceError:未定义myglobalObject 有人能解释一下我为什么会出错吗?

如果window['myglobalObject']==未定义window.myglobalObject={}

如果不想从上下文中公开对象,可以执行如下smth:

var myglobalObject=myglobalObject | |{}

如果窗口['myglobalObject']==未定义的窗口。myglobalObject={}

如果不想从上下文中公开对象,可以执行如下smth:


var myglobalObject=myglobalObject | |{}

为了避免ECMAScript 5严格模式中的错误,您需要使用var定义所有变量:

if (typeof myglobalObject == "undefined") {
    var myglobalObject = {};
}
另一种方法是将属性指定给全局对象:

// The following line gets you a global object in any ECMAScript
// environment, so long as it runs in the global scope. In browsers,
// you could just use window.
var globalObj = this;
if (typeof globalObj.myglobalObject == "undefined") {
    globalObj.myglobalObject = {};
}

为了避免ECMAScript 5严格模式中出现错误,您需要使用var定义所有变量:

if (typeof myglobalObject == "undefined") {
    var myglobalObject = {};
}
另一种方法是将属性指定给全局对象:

// The following line gets you a global object in any ECMAScript
// environment, so long as it runs in the global scope. In browsers,
// you could just use window.
var globalObj = this;
if (typeof globalObj.myglobalObject == "undefined") {
    globalObj.myglobalObject = {};
}

在ECMAScript 5严格模式下,对未声明变量的赋值将导致错误。改为使用var语句。在ECMAScript 5严格模式下,对未声明变量的赋值将导致错误。改用var语句。说到严格模式,第二个代码段中的globalObj将计算为未定义。。。当处于严格模式时。因此,var globalObj=从全局代码中进行此操作可能是一个更好的选择。。。当处于严格模式时。因此,var globalObj=从全局代码中执行此操作可能是一个更好的选择。