假设我有以下内容:
(function() {
let myVar = 300;
window.myFunc = function() {
console.log(myVar);
};
})();
在不更改上述代码的情况下,您能想到一种更改myVar
变量的方法吗?我的意思是从外面说,您能做些什么:
window.myFunc.__closure__.myVar = 10;
这可能吗?
不,这是不可能的,因为变量的范围是函数的块。
修改闭包内部内容的唯一方法是通过当前词法上下文中的属性(在这种情况下为window
对象)。
(function() {
this.myVar = this.myVar || 300;
window.myFunc = function() {
console.log(myVar);
};
})();
myVar = "Ele";
myFunc();
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句