this 的默认绑定、隐式绑定、显式绑定、new 绑定和箭头函数绑定的优先级如何理解
进阶版来源:bytedance初级工程师class方法与事件监听bind/call/apply箭头函数this绑定
草稿
答案解析
可以按两类来理解:普通函数的 this 是调用时决定的,箭头函数的 this 是定义时从外层词法作用域继承的。
对于普通函数,优先级一般是:
默认绑定就是函数直接调用:
非严格模式下,this 通常指向全局对象,比如浏览器里的 window;严格模式下是 undefined。
隐式绑定是通过对象调用函数:
这时 this 指向调用它的对象,也就是 obj。但隐式绑定容易丢失,比如:
这里又变成默认绑定了。
显式绑定是通过 call、apply、bind 指定 this:
```js fn.call(
登录后查看完整内容
