没太懂老师讲的,function里的i往上找不是也是var i=0;那块吗?不应该也都是11吗

没太懂老师讲的,function里的i往上找不是也是var i=0;那块吗?不应该也都是11吗

var i = 0;
for (i = 1; i <= 10; i ++) {
	(function(i){
    var btn = document.createElement('button');
    btn.innerText = i;
    btn.onclick = function() {
			alert(i)
    };
    document.body.appendChild(btn);
	})(i)
}
var i = 0;
for (i = 1; i <= 10; i ++) {
    var btn = document.createElement('button');
    btn.innerText = i;
    btn.onclick = function() {
	alert(i);
    };
    document.body.appendChild(btn);
}


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
提问者 SheanWu 2019-09-18 21:35:32

好了我懂了,自己断点走了一下.

没有自执行方法封装之前,是先生成了10个button,最后i=11,click是在生成完button之后执行的,这时候因为i是11了,所以都alert(11),被函数封装后,相当于一个button是一个不同i的方法,所以onclick都是alert的自己方法所对应的i



问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

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

帮助反馈 APP下载

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

公众号

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

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师