0
点赞
收藏
分享

微信扫一扫

this指向 简单清晰理解

律楷粑粑 2022-02-22 阅读 110

this指向

1.普通调用this指向window 严格模式下指向undefined

2.作为对象的属性 指向对象 多层调用指向当前调用者obj.obj2.fn() 指向obj2

3.箭头函数的this 不会自己创建this 是从上层作用域继承this的指向

箭头函数中的this是在定义函数的时候绑定,而不是在执行函数的时候绑定。

obj={fn:()=>{console.log(this)}} //this 指向window

4.call apply bind 改变this的指向

call apply 第一个参数为this指向 第二个参数为传参 apply传参为数组

bind返回一个改变了this指向的新函数

5.构造函数的this指向 实例

new 调用时,返回一个新对象 新对象绑定到函数调用的this上

new调用时自动执行

1.创建一个新对象

2.新对象绑定到函数调用者上 新对象._proto_=构造函数.prototype

3.执行构造函数

4.如果函数没有返回其他对象,那么 new 表达式中的函数调用会自动返回这个新对象。

this 绑定的优先级: new > 显示绑定 > 隐式绑定 > 默认绑定​​​​​​​

默认绑定-1.默认函数指向window

隐式绑定-2.object-3.箭头函数

显示绑定-4.apply call bind

new-5.构造函数

举报

相关推荐

0 条评论