Javascript:是否有像lua中的_G一样的等效物在JavaScript中?

在lua中,我可以这样做:

_G.print("Hello world")
print("Hello world")

它将同时将同一字符串打印到屏幕上。 在JavaScript中是否有一种访问全局对象的方法?我是说像

_G.console.log === console.log
true

在我的使用情况中,这将非常有帮助(我想通过扫描全局对象来防止任何代码注入我的网站)。

点赞
用户218196
用户218196

在浏览器中,你可以用window或者self。在 Node 中可以使用 global。然而这在一般情况下并没有标准化,但是有一个标准化的提案。提案还展示了一种与环境无关的获取全局对象的方法:

var getGlobal = function () {
    // 获取全局对象的唯一可靠方式是使用 `Function('return this')()`
    // 然而,在 Chrome 应用中,这会导致 CSP 违规。
    if (typeof self !== 'undefined') { return self; }
    if (typeof window !== 'undefined') { return window; }
    if (typeof global !== 'undefined') { return global; }
    throw new Error('unable to locate global object');
};
2017-10-06 18:23:36