gpt4 book ai didi

javascript - 是否可以在 JavaScript 中更改闭包内的变量?

转载 作者:行者123 更新时间:2023-11-29 10:27:19 25 4
gpt4 key购买 nike

假设我有以下内容:

(function() {
let myVar = 300;
window.myFunc = function() {
console.log(myVar);
};
})();

在不改变上面代码的情况下,你能想办法改变myVar变量吗?我的意思是从外面看,你能做类似的事情吗:

window.myFunc.__closure__.myVar = 10;

这可能吗?

最佳答案

不,这是不可能的,因为变量的范围是函数的 block 。

在闭包内部修改某些东西的唯一方法是通过当前词法上下文中的属性(在本例中是 window 对象)。

(function() {
this.myVar = this.myVar || 300;
window.myFunc = function() {
console.log(myVar);
};
})();

myVar = "Ele";
myFunc();

关于javascript - 是否可以在 JavaScript 中更改闭包内的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55755013/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com