关于js中的this之判断this

this绑定规则的优先级顺序

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

 

 
posted @ 2015-10-23 09:45  勤奋的蓝孩子  阅读(433)  评论(0编辑  收藏  举报