javascript - 使用 javascript 限制对全局上下文的访问

标签 javascript

假设我有以下功能

function foo(){
    console.log(test);
    console.log(window);
}

有没有办法阻止foo访问window对象?我尝试过以下方法

foo.apply({});

但它只会更改this并保留对窗口的访问

最佳答案

您可以使用var window = {};来覆盖对全局对象的引用。您还可以使用 .apply({}) 方法来阻止通过 this 进行访问。

但是,除了手动定义每个可能的变量名称之外,您无法阻止在全局对象上获取/设置未声明的变量...

正如 Bergi 指出的,window = (function() {return this;}()); 将恢复对 window 对象的引用。这又是一件可能无法阻止的事情。

关于javascript - 使用 javascript 限制对全局上下文的访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23595880/

相关文章:

javascript - 如何向下移动标题?

javascript - 当我在事件 "onbeforeunload"中进行异步 XMLHttpRequest 调用时,幕后会发生什么?

javascript - 如何在 Canvas 中获取图像元素的坐标

javascript - 通过 slider 移动更改 slider 值

javascript - 使用 ng-model 通过 ng-repeat 和 ng-options 标记下拉列表中的选定项目

javascript - 使用 load() 加载 html 页面后,jQuery 单击事件处理程序不起作用

WebSocket 消息中的 JavaScript 双反斜杠

javascript - 如何在jquery中只执行一次action?

javascript - Angular2 - 让动画不适用

javascript - Nancy + .NET Core 启用 CORS 不起作用