我想在我的应用程序中访问全局JS作用域的所有属性。
没有DOM,所以我不能使用以下内容:
for (var attr in window) {
// attr is in the global scope
}
有没有办法获得对全局JS范围的引用?
答案 0 :(得分:2)
在非严格模式下,您可以使用 this 获取对全局对象的引用:
var globalObj = (function(){return this}());
就好像你没有在调用中设置 this 一样,它默认为全局对象。这将适用于任何执行上下文(但不是严格模式)。更简单地创建一个引用全局对象的全局变量:
var global = this;
或将其传递给IIFE:
(function (global) {
// In here, global === global object
...
}(this))
无论什么都适合。