this绑定的4种方式

最近在看JavaScript书,看的我晕头转向,特别是作用域、闭包等概念很难分辩。不过很庆幸搞清楚一件事,就是this的4种绑定方式,我把大段的文字描述做成一张表与大家分享:(博客不能插表格,我转化一下:A表示‘定义‘,B表示’绑定结果’,C表示‘举例’)

new绑定

A:在new中调用​

B:​新创建对象

C:var bar = new foo()

————————

显式绑定

A:通过call、apply或硬绑定调用

B:指定对象

C:var bar = foo.call(obj2)

​————————

隐式绑定

A:在某个上下文对象中调用

B:上下文对象

C:var bar = obj1.foo()

————————​

​​默认绑定

A:不属于以上三种绑定方式

B:全局对象(严格模式,绑定undefined)

C:var bar = foo()

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注