程序运行过程:
i = 1; //将变量i初始化为1
obj.onclick=function(){alert(i)} ; //给obj添加事件,如果在此时触发事件,则弹出的是1
i=2; //i为2
然后引发事件,引发事件的时候,(上面的程序已经执行完了)i已经是2了,所以弹出的是2
i = 1; //将变量i初始化为1
obj.onclick=function(){alert(i)} ; //给obj添加事件,如果在此时触发事件,则弹出的是1
i=2; //i为2
然后引发事件,引发事件的时候,(上面的程序已经执行完了)i已经是2了,所以弹出的是2
obj.onclick = createHandler(2);function createHandler(i)
{
return function()
{
alert(i);
}
}
var i=1;
var j=i;
obj.onclick=function(){alert(j)};
i=2;
document.getElementById('d').onclick = (function(a){
return function (){
alert(a)
}
})(i);
i=2
document.getElementById('d').onclick = (function(a){
return function (){
alert(a)
}
})(i);
i=2