是否可以在JavaScript的闭包内部更改变量?

一些人

假设我有以下内容:

(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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章