关于this的问题

来源:5-1 JS链式动画

qq_沥川很宅_03206095

2017-02-16 11:57

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

写回答 关注

3回答

  • 慕粉222241287
    2017-03-05 19:17:03

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

  • 慕粉3951534
    2017-02-23 11:18:52

    课程中的代码是

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

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

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

    Li.onmouseover = startMove(...);

    这样就可以。

  • 学习可以放飞灵魂
    2017-02-17 16:29:41

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

JS动画效果

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

113923 学习 · 1443 问题

查看课程

相似问题