最近在看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()