作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
假设我有以下内容:
(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/
我在一个 twig 模板中使用 Assetic 来指定要从我的包中使用的 2 个 JS 文件 { % javascripts '@JiraExtendedReportsBund
我正在做一个 VS 包,它在菜单中有一个 DynamicItemStart 按钮。我在 VS 启动时加载动态按钮的内容没有任何问题,但我试图在某些事件(例如打开项目)之后向其内容添加更多命令。我将新命
需求是从plsql调用java方法,我可以通过loadjava命令来实现它。我遵循的步骤是: 第 1 步:创建 Java Class/jar 文件并将其放置在 Unix 机器上 第2步:将Java C
我是一名优秀的程序员,十分优秀!