问答详情
源自:5-1 JS链式动画

为什么调用startMove函数时,对象只能是li1,而不能是this

 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);
                    });
                });
            };



提问者:慕函数9642432 2016-08-05 16:16

个回答

  • 水货
    2016-08-08 09:12:12

    this 指代当前对象  在onmouseout方法体中指代调用该方法的 li1对象    而在startmove中调用该函数的并不是 li1 对象  你可以 参考http://www.ibm.com/developerworks/cn/web/1207_wangqf_jsthis/这篇文章

  • 水货
    2016-08-05 18:07:27

    你可以在每一步的function中console.log(this) 就会发现在startMove 的回调函数中 this 已经不是li1对象