Javascript 不使用DOM访问全局JS上下文的属性
我想在我的应用程序中访问全局JS作用域的所有属性 没有DOM,因此我无法使用以下命令:Javascript 不使用DOM访问全局JS上下文的属性,javascript,dom,global-variables,Javascript,Dom,Global Variables,我想在我的应用程序中访问全局JS作用域的所有属性 没有DOM,因此我无法使用以下命令: for (var attr in window) { // attr is in the global scope } 有没有办法获取对全局JS作用域的引用?在非严格模式下,您可以使用以下方法获取对全局对象的引用: 如果您没有在调用中设置它,它默认为全局对象。这将在任何执行上下文中工作(但不是在严格模式下)。创建引用全局对象的全局变量更简单: var global = this; 或者把它传给一个生命
for (var attr in window) {
// attr is in the global scope
}
有没有办法获取对全局JS作用域的引用?在非严格模式下,您可以使用以下方法获取对全局对象的引用: 如果您没有在调用中设置它,它默认为全局对象。这将在任何执行上下文中工作(但不是在严格模式下)。创建引用全局对象的全局变量更简单:
var global = this;
或者把它传给一个生命:
(function (global) {
// In here, global === global object
...
}(this))
无论什么都合适。如果没有DOM,您的环境是什么?Node?self,这通常有效。您是否有效地询问是否可以访问给定执行上下文的环境记录?如果是这样,答案几乎是“否”。@CrazyTrain-指定在全局执行上下文中引用全局对象。它还指定当不处于严格模式时,如果调用未设置为其他对象,则默认为全局对象。因此,虽然环境不需要(也不需要)提供对任何执行上下文/变量对象/激活对象/任何对象的访问,但它们需要提供对全局对象(实际上是全局变量对象)的访问@RobG:我的评论是,
窗口
属性是主机提供的属性,不是必需的。+1我想知道ECMAScript是否需要此
来引用全局执行上下文中的全局对象,似乎确实如此。
(function (global) {
// In here, global === global object
...
}(this))