this是基于上下文环境来变动的
可以用不同的方法进行函数调用,不用的调用机制决定了函数上下文的不同。
调用者 caller 被调用者 callee,this指向 caller。
作为普通函数进行调用时,其上下文环境是全局对象(window)
![](https://img.haomeiwen.com/i5734505/7f37716c0552c7f8.png)
作为方法进行调用时,其上下文是拥有该方法的对象(隐式调用)
![](https://img.haomeiwen.com/i5734505/3aabff78e30efccc.png)
作为构造器进行调用时,其上下文是一个新分配的对象
![](https://img.haomeiwen.com/i5734505/6f1bff47715bf04f.png)
通过函数的apply()或call()方法进行调用时,上下文可以设置成任意值(显示调用)
![](https://img.haomeiwen.com/i5734505/3d77fa5f47fa6bf2.png)
可以用不同的方法进行函数调用,不用的调用机制决定了函数上下文的不同。
调用者 caller 被调用者 callee,this指向 caller。
本文标题:javascript之this探究
本文链接:https://www.haomeiwen.com/subject/gjqltxtx.html
网友评论