JS - this的四种用法

1.在一般函数方法中使用 this 指代全局对象
function test() {
  this.x = 1;
  alert(this.x);
}
test(); // 1
2.作为对象方法调用,this 指代上级对象
function test(){  
  alert(this.x);
}
var o = {};
o.x = 1;
o.m = test;
o.m(); // 1
3.作为构造函数调用,this 指代new 出的对象
function test(){    
 this.x = 1;  
}  
var o = new test();
alert(o.x); // 1 ,运行结果为1,为了表明这时this不是全局对象,我对代码做一些改变:  
var x = 2;  
function test(){    
  this.x = 1;  
}  
var o = new test();  
alert(x); //2
4.apply 调用 ,apply方法作用是改变函数的调用对象,此方法的第一个参数为改变后调用这个函数的对象,this指代第一个参数;
var x = 0;  
function test(){    
  alert(this.x);  
}  
var o={};  
o.x = 1;  
o.m = test;  
o.m.apply(); //0,apply()的参数为空时,默认调用全局对象。因此,这时的运行结果为0,证明this指的是全局对象。如果把最后一行代码修改为: 
o.m.apply(o); //1
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.在一般函数方法中使用 this 指代全局对象 functiontest(){ this.x = 1; al...
    seto__阅读 206评论 0 0
  • [JS中this的四种用法] 1.在一般函数方法中使用 this 指代全局对象 2.作为对象方法调用,this 指...
    新篇章阅读 139评论 0 0
  • this 四种用法:1、指代全局对象2、作为对象方法调用,this 指上级对象 1、 指代全局对象 2、作为对象方...
    Hello杨先生阅读 125评论 0 1
  • js中thisd的用法 * this是js中的关键字,它代表函数运行时,自动生成的一个内部对象,只能在函数内部使用...
    kahn17阅读 405评论 0 0
  • this是javaScript语言的一个关键字。它代表函数运行时,自动生成的一个内部对象,只能在函数内部使用。 t...
    菲龍探雲阅读 438评论 0 0