看视频:
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绑定。