var li1=document.getElementById('li1');
li1.onmouseover= function () {
startMove(li1,'width',400,function(){
startMove(li1,'height',200,function(){
startMove(li1,'opacity',100);
});
});
};
li1.onmouseout= function () {
startMove(li1,'opacity',30,function(){
startMove(li1,'height',100,function(){
startMove(li1,'width',200);
});
});
};
this 指代当前对象 在onmouseout方法体中指代调用该方法的 li1对象 而在startmove中调用该函数的并不是 li1 对象 你可以 参考http://www.ibm.com/developerworks/cn/web/1207_wangqf_jsthis/这篇文章
你可以在每一步的function中console.log(this) 就会发现在startMove 的回调函数中 this 已经不是li1对象