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

面试时问到的问题

面试时问到的问题

皈依舞 2018-08-01 17:19:17
这个程序怎么改 让handle[1]弹1,handle[2]弹2;var handle=[]; function bindEvent() {         for(var i=0;i<=2;i++){                 handle[i]=function () {            alert(i);        }    }}    bindEvent();     handle[1]();     handle[2]();
查看完整描述

2 回答

?
宝慕林4294392

TA贡献2021条经验 获得超8个赞

使用闭包:

function bindEvent() {    for(var i=0;i<=2;i++){
        (function(x){
            handle[x]=function () {             
                console.log(x)
            }
        })(i)
        
    }
}

或者 用let代替var

function bindEvent() {    
    for(let i=0;i<=2;i++){
        handle[i]=function () {
            alert(i);
        }
    }
}


查看完整回答
反对 回复 2018-08-04
?
慕田峪4524236

TA贡献1875条经验 获得超5个赞

闭包。

var handle=[];

function bindEvent() {

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

        handle[i]=(function (i) {

            alert(i);

        }).bind(this, i);

    }

}

bindEvent();

handle[1]();

handle[2]();


查看完整回答
反对 回复 2018-08-04
  • 2 回答
  • 0 关注
  • 964 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信