判断this

根据优先级来判断this绑定的哪个对象
1.函数是否在new中调用(new 绑定)?如果是的话this绑定的是新创建的对象。

var bar =new foo()

2.函数是否通过call、apply(显示绑定)或者硬绑定调用?如果是的话,this绑定的是指定的对象。

var bar = foo.call(obj2)

3.函数是否在某个上下文对象中调用(隐式绑定)?如果是的话,this绑定的是那个上下文对象。

var bar = obj1.foo()

4.如果都不是的话,使用默认绑定,如果在严格模式下,就绑定到undefined,否则绑定到全局对象。

var bar = foo()

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容