1. 判断this。可以按照下面的顺序判断函数在某个调用位置应用的是哪条规则:
(1)函数在new中调用(new绑定),this绑定的是新创建的对象。
(2)函数通过call、apply(显示绑定)或者硬绑定调用,this绑定的是指定对象。
(3)函数在某个上下文对象中调用(隐式绑定),this绑定的是那个上下文对象。
(4) 如果以上都不是,使用默认绑定。严格模式下(函数体处于严格模式下)绑定到undefined,否则绑定到全局对象。
2. 剪头函数不使用this的四种标准规则,而是根据外层(函数或者全局)作用域来决定this。