为了账号安全,请及时绑定邮箱和手机立即绑定

为什么调用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);
                    });
                });
            };



正在回答

2 回答

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

0 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~
#1

慕函数9642432 提问者

怎么会是window?为什么原来的this对象指的就是li1呢
2016-08-05 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信