this的指向

默认情况下,this指向当前函数的执行对象;但是this也是有多种变化的:

变化一:

默认绑定
没有明确隶属对象的函数,直接被执行,一般都是指向window; 例如:

浅谈JavaScript之this指向的修改
这里的this就是指向window浅谈JavaScript之this指向的修改

变化二:

隐式绑定
由所属对象,被执行后,一般都是指向当前函数所属的对象,被称为隐式绑定

浅谈JavaScript之this指向的修改
这里就是指向obj了,因为obj执行了函数;
浅谈JavaScript之this指向的修改

变化三:

隐式丢失
函数被作为参数传递,不管是谁,有没有所属对象,只要是通过参数执行,一般都是指向window

浅谈JavaScript之this指向的修改
这里的this也是指向window
浅谈JavaScript之this指向的修改
在某些情况下,回调函数的指向并不是window,而是被系统修改了;
在这里this的指向就被修改了
浅谈JavaScript之this指向的修改浅谈JavaScript之this指向的修改

this指向的修改


首先。为什么要修改this的指向?
为了修正和继承!!!
怎么修改this的指向?通过方法
通过call,apply和bind三个方法:

call方法的使用

浅谈JavaScript之this指向的修改

apply方法的使用

浅谈JavaScript之this指向的修改

bind方法的使用

浅谈JavaScript之this指向的修改
当然,方法不同,方法之间肯定是存在区别的:
浅谈JavaScript之this指向的修改
这些都是通过自己学习和使用总结的,还希望大佬们多指点,毕竟我刚接触js。。

相关文章: