如何在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=从全局代码中执行此操作可能是一个更好的选择。