this对象

js中this的四种用法

  1. 在一般函数方法中使用this指代全局对象(默认绑定)
var x=1;
function test(){
  console.log(this.x)
}
test();    //1
  1. 作为对象方法调用,this指向上级对象(隐式绑定)
function test(){
  console.log(this.x)
}
var obj={
  x:1,
  func:test
};
obj.func();    //1
  1. 作为构造函数调用,this指代new出的对象(new 绑定)
function test(){
 this.x = 1;
}
var o = new test();
alert(o.x);    //1
  1. apply/call调用,this指向第一个参数(显式绑定)
var x=0;
function test(){
  console.log(this.x)
}
var obj={
  x:1
};
test.apply();     //0,第一个参数为空时,默认指向window对象。
test.apply(obj);  //1

模拟apply/call的实现://www.greatytc.com/p/b7532c021bd9

  1. this绑定优先级
new 绑定  >  显式绑定  >  隐式绑定  >  默认绑定
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容