您的位置:首页 > Web前端 > JavaScript

JS中this的理解

2017-11-25 23:50 134 查看
在java中我们也会经常遇到this,在JavaScript中也经常用this,我们需要知道this在不同的使用场景下分别代表的含义以及它的原理。一定要清楚this是在运行时进行绑定的,并不是在编写时绑定,它取决于函数调用的条件以及它的调用位置。

1、JS中的this,有四种使用场景,分别为:

1)在普通函数中使用this,this指向全局对象,属于window


var x="aa";
function test1(){
var x="bb";
console.log(this.x);//aa
}
test1();    //等价于window.test1();


因为test1()是通过window来调用的,所以在普通函数中this也是取window下的变量x,如果全局没有定义该变量,会返回一个undefined。

2)在对象方法中使用this

通常我们在写事件的时候就经常用到,这时this就代表触发这个事件的对象,如:


var proInfo_div=
document.getElementsByClassName("proInfo");
proInfo_div[i].onmouseout=function(){
this.style.backgroundColor="lightgray";
}


3)在构造方法中使用this,通过new一个对象来调用方法,this代表调用这个函数的对象


function People(name){
this.name=name;
//将这个
4000
方法绑定到People上
this.introduce=function(){
console.log("my name is "+this.name);
}
}
var p=new People("lisi");
p.introduce();


4)call和apply场景下使用this
apply方法作用是改变函数的调用对象,此方法的第一个参数为改变后调用这个函数的对象,this指代第一个参数


//apply方法
var x=0;
function test(){
alert(this.x);
}
var a={};
a.x=1;
a.m=test;
a.m.apply();//0
a.m.apply(a);//1
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  javascript 函数 this