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

回调函数的执行环境?

链式调用中,第二个调用函数startMove(this,"someAttr",num)中不能直接用this。原因是this指向错误,这是由函数声明引起的。函数声明会进行函数提升,此时变为了全局函数。而this对象是在运行时基于函数的执行环境绑定的,那么this就指向了window,而不是当前的对象。如果“var this = this”,这时就可以使用this了。

————————————————————————————————————

以上摘自一条评论。

求解答,既然是全局函数为什么还能调用onmouseover事件函数里的this变量,这个全局函数和定义在最外面的函数一样吗?

提问者:natsu07 2016-10-16 23:37

个回答

  • natsu07
    2016-10-17 01:05:24

    看了红皮书的作用域链差不多明白了,是我搞混了