关于js中的this之判断this
this绑定规则的优先级顺序
new操作符绑定 > 显示绑定 > 隐式绑定 > 默认绑定
所以在判断函数在某个调用位置应用的是哪条规则,可以按下列这样的顺序
if(函数在new中调用(new绑定)) { this绑定的是新建的对象; } else if(函数通过以call,apply(显示绑定)||硬绑定调用) { this绑定的是指定的对象; } else if(函数在某个上下文对象中调用(隐式绑定)) { this绑定的是那个上下文对象; } else { 函数使用的是默认绑定; if(在严格模式下){ this绑定到undefined; } else{ this 绑定到全局对象; } }