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

js闭包为什么弹出undefined ?

js闭包为什么弹出undefined ?

拉莫斯之舞 2019-04-09 20:25:11
jsonpbb();vardata=['1','2','3','4'];functionbb(data){$('a[date]').click(function(data){//for(vari=0;i
查看完整描述

2 回答

?
翻阅古今

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

因为jQuery(以及浏览器原生DOM)的事件处理函数的第一个参数会传递那个事件对象,所以你的匿名函数的参数data是那个事件,它没有名为0的属性。你应该这样写:
vardata=['1','2','3','4'];
functionbb(){
$('a[date]').click(function(){//ignorearguments
//for(vari=0;ialert(data[0]);
//}
});
}
bb();
这个和闭包一点关系也没有。data就一全局变量而已。
这才是闭包:
functiongen_counter(){
vari=0;
returnfunction(){
i++;
returni;
};
}
varc=gen_counter();
console.log(c(),c());
console.log(c());
vard=gen_counter();
console.log(c(),d());
                            
查看完整回答
反对 回复 2019-04-09
  • 2 回答
  • 0 关注
  • 338 浏览
慕课专栏
更多

添加回答

举报

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