87,993
社区成员
发帖
与我相关
我的任务
分享<script>
var btn = document.getElementsByTagName( 'button' );
var j;
for( j = 0; j < 3; j++ ) {
btn[ j ].onclick = function(){
alert( j );
};
}
</script>
变量j其实是全局变量,你通过 window.j 是可以访问得到的。
JavaScript代码执行是很快的,
当你触发点击事件后,j的值早就等于3了。
那怎么模拟局部变量呢,函数的参数就是局部变量:
var btn = document.getElementsByTagName( 'button' );
var j;
for( j = 0; j < 3; j++ ) {
+function( _j ){
btn[ _j ].onclick = function(){
alert( _j );
};
} ( j );
}
至于闭包什么的,我说不清楚。