看视频:

https://www.bilibili.com/video/BV1BE411677T

https://www.bilibili.com/video/BV167411v7bB?from=search&seid=2690539284676826260

https://www.bilibili.com/video/BV1NT4y1j7xH?from=search&seid=2690539284676826260

看博客:

https://www.jb51.net/article/121164.htm:  默认绑定是流浪,隐式绑定是租房,显示绑定是买房,new绑定是生娃。

https://zhuanlan.zhihu.com/p/38313872:知乎;

https://blog.csdn.net/u010344410/article/details/90517814:csdn;

https://www.cnblogs.com/xiaohuochai/p/5735901.html: 博客园;

https://segmentfault.com/a/1190000016678888 :segment;

  • 1. this 是什么
  • 2.this 的四种绑定规则
  • 3. 绑定规则的优先级
  • 4. 绑定例外
  • 5. 扩展:箭头函数

 

1 this 既不指向函数自身,也不指函数的词法作用域。如果仅通过this的英文解释,太容易产生误导了。它实际是在函数被调用时才发生的绑定,也就是说this具体指向什么,取决于你是怎么调用的函数。

 

2this的四种绑定规则:默认绑定、隐式绑定、显式绑定和new绑定。

分别对应函数的四种调用方式:独立调用、方法调用、间接调用和构造函数调用。

分清这四种绑定规则不算难,比较麻烦的是需要练就火眼金睛,识别出隐式丢失的情况

1 默认绑定:

 function girl() {
        console.log(this);
 }
 girl();

2 隐式绑定: 函数调用。会发生绑定丢失。

3显示绑定:call apply bind

4new绑定。

posted on 2020-12-26 21:30  程序员草莓  阅读(61)  评论(0编辑  收藏  举报