关于this

2021-01-08  本文已影响0人  温梦丽

this使用一种更优雅的方式来隐式“传递”一个对象的引用

1.this的绑定和函数声明的位置没有任何关系,只取决于函数的调用方式。
2.函数在执行过程中如何绑定this
a.默认绑定:
不被任何函数引用进行调用(全局对象)=》严格模式this会绑定到undefined
b.隐式绑定:
调用位置是否有上下文对象(缺点:隐式丢失)
c.显式绑定:

foo.call(this,2,3);//此处‘this’指显式绑定的函数对象

如果把undefined或者null作为this的绑定对象传入call、apply或者bind,这些值在调用时会被忽略,实际应用的是默认绑定规则

优先级
1.new调用?绑定到新创建的对象
2.由call,apply(或者bind)调用?绑定到指定的对象
3.由上下文对象调用?绑定到上下文对象
4.默认:在严格模式下绑定到undefined,否则绑定到全局对象

总结来自:你不知道的Javascript(上卷)

上一篇下一篇

猜你喜欢

热点阅读