js闭包经典问题:闭包只能获取包含函数中任何变量的最后一个值。
单看这句定义,理解起来有点羞涩难懂,看代码:
提示:你可以先修改部分代码再运行。
alert出来的始终是3,而不是表面上理解的依次返回0、1、2 。
简单点可以这样理解:onclick定义的匿名函数中访问i会在自身的局部作用域中找i这个变量,如果没有,就会往外找,也就是在全局作用域中找到循环结束后就是的i值3,
可以通过创建另一匿名函数强制让闭包的行为符合预期,代码如下:
提示:你可以先修改部分代码再运行。
需要注意的是:
立即执行函数中的this 指向是window对象,return 中的匿名函数this指向点击链接DOM对象;
return 中的匿名函数中的参数arg 为event对象
2条评论( 网友:2 条,站长:0 条 ) 网友评论{有您的评论更精彩....}