javaScript的 this绑定分析

注意:js中的this指向是根据执行上下文来确定的:

绝大多数情况:

1.全局执行上下文: this 指向widnow ,严格模式下指向undefied

2.函数执行上下文:

默认绑定: 函数调用时无前缀,默认this 指向widnow ,严格模式下指向undefied
注意:严格模式下调用不在严格模式中的函数,并不会影响this指向;

隐式绑定:如果函数调用时,前面存在调用它的对象,那么this就会隐式绑定到这个对象上
注意1:如果函数调用前存在多个对象,this指向距离调用自己最近的对象;
注意2:隐式丢失,最常见的情况是当作参数传递以及变量赋值时发生;

显示绑定:通过apply、call、bind显示改变;
注意:指向参数提供的是null或者undefined,那么 this 将指向全局对象。

new绑定: new出来的新实例;

this 绑定优先级问题:

显式绑定 > 隐式绑定 > 默认绑定
new绑定 > 隐式绑定 > 默认绑定

为什么显式绑定不和new绑定比较呢?因为不存在这种绑定同时生效的情景,如果同时写这两种代码会直接抛错.

=======================================
单独拎出来:
箭头函数:箭头函数的this指向取决于外层作用域中的this,外层作用域或函数的this指向谁,箭头函数中的this便指向谁,并且一旦箭头函数的this绑定成功,也无法被再次修改,有点硬绑定的意思

感谢大神连接,参考链接:https://www.cnblogs.com/echolun/p/11962610.html;

你可能感兴趣的:(javascript,前端)