假设我有以下功能
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/