首页 > 代码库 > this的分析
this的分析
this是js中的一个关键字,当函数运行时,会自动生成的一个对象,只能在函数内部使用。随着函使用场合不同,this值会变化,但是始终指向调用函数的那个对象。
1.纯粹的函数调用
function box(){ console.info(this); //window this.x ="box";}box();console.info(x); //box
以上说明单纯调用函数,函数中的this就代表window。我会在写两个小栗子:
var x=1;function box(){ console.info(this.x); //1}box();
var x=1;function box(){ this.x = 2;}box();console.info(x);//2
2.作为某一个对象的方法
当函数作为某一个对象的方法调用时,this就代表这个对象
接下来的三个栗子是最常用的方法
function test(){ console.info(this.x);}var o = {};o.x = 1;o.m=test;o.m(); //1,this代表o
var o = {};o.x = 1;o.m =function(){ console.info(this.x);}o.m();//1,this代表o
var o={ x:1, m:function(){ console.info(this.x) }}o.m();//1 this代表o
3.作为构造函数调用
也就是通过构造函数生成一个新对象,this代表这个新对象,这个很常用
function box(){ this.x = 1; }var box1 = new box();console.info(box1.x);//1 this代表box1这个对象
4.apply调用
apply是用来改变调用函数的对象的方法,第一个参数代表改变后的对象,剩下的参数代表传入的参数
var x = 0;function box(){ console.info(this.x);}var o={ x:1, m:box}o.m();//1o.m.apply(); //0o.m.apply(o); //1
注意当apply什么也传时,代表传了window
this的分析
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。