javaScript之this全面解析(3)
前面已经我们已经知道了函数调用中this绑定的四条规则,接下来说下四条规则的优先级
1、毫无疑问默认绑定的优先级最低
2、显示绑定比隐式绑定高,看以下代码:

3、new绑定比隐式绑定优先级高。如:

4、显示绑定和new绑定?看下列代码

bar被硬绑定到对象obj1上,所以第一个输出为2,而new表示新创建了一个baz对象而非obj1对象,所以baz.a=3.
之所以要在new中使用硬绑定函数,主要目的是预先设置函数的一些参数,这样在使用new进行初始化时就可以只传入其余的参数。
bind(...)的功能之一就是把除了第一个参数之外的其他参数都传给下层的函数。这种技术称为“部分应用”,是‘柯里化’的一种。如:

this判断顺序:
1、函数new绑定
2、显示绑定或者硬绑定
3、隐式绑定
4、默认绑定
绑定例外
1、如果把null或者undefined作为this的绑定对象传入call、apply或者bind,这些值在调用时会被忽略,实际应用的是默认绑定规则


浙公网安备 33010602011771号