为了账号安全,请及时绑定邮箱和手机立即绑定

自执行函数如何修改全局变量

自执行函数如何修改全局变量

鸿蒙传说 2018-12-29 16:14:29
var k = true;for (var i = 0; i < 4; i++) {(function(i, k) {if (k) {  console.log(k)  console.log(i);  k = false;}})(i, k)}结果输出了4个 true和0,1,2,3求解释啊。为什么不能更改k的值
查看完整描述

1 回答

?
泛舟湖上清波郎朗

TA贡献1818条经验 获得超3个赞

var k = true;

for (var i = 0; i < 4; i++) {

    (function(i, k) {

        if (k) {

          console.log(k)

          console.log(i);

          k = false;

        }

    })(i, k)

}

你上面的代码,k改变的是当前立即执行函数内的形参k的值,
改成下面就可修改函数体外k的值

var k = true;

for (var i = 0; i < 4; i++) {

    (function(i) {

        if (k) {

          console.log(k)

          console.log(i);

          k = false;

        }

    })(i)

}


查看完整回答
反对 回复 2019-01-01
  • 1 回答
  • 0 关注
  • 447 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号