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

关于this的问题

为什么这里startMove(Li,'width',400,function(){})这样没问题,但是一旦你用startMove(this,'width',400,function(){})浏览器都报错

正在回答

3 回答

一个对象只能是它的下一层用this,再下一层需要定义一个变量   var  a=this;
   startMove(a,…),,,,,,,,,,,,,,,,,,,,,,,

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

课程中的代码是

Li.onmousevoer = function {
    startMove(...);
}

startMove 函数实在 function 中调用的,而非直接由 Li 持有,所以在 startMove 中不能用 this,你可以试一下,在 function 中用 this 是没有问题的。

你想在 startMove 中用 this 可以改成这样:

Li.onmouseover = startMove(...);

这样就可以。

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

它是对类的当前实例的引用。 你的startMove()上面有没有实例,  类似于startMove(Li,'width',400,function(){})里的 “Li”

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

举报

0/150
提交
取消
JS动画效果
  • 参与学习       113926    人
  • 解答问题       1443    个

通过本课程JS动画的学习,从简单动画开始,逐步深入各种动画框架封装

进入课程

关于this的问题

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