JS中this的理解
2017-11-25 23:50
134 查看
在java中我们也会经常遇到this,在JavaScript中也经常用this,我们需要知道this在不同的使用场景下分别代表的含义以及它的原理。一定要清楚this是在运行时进行绑定的,并不是在编写时绑定,它取决于函数调用的条件以及它的调用位置。
1、JS中的this,有四种使用场景,分别为:
因为test1()是通过window来调用的,所以在普通函数中this也是取window下的变量x,如果全局没有定义该变量,会返回一个undefined。
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
相关文章推荐
- 彻底理解js中this
- 关于js里的this关键字的理解
- 彻底理解js中this的指向,不必硬背。
- 彻底理解js中this的指向,不必硬背。
- 彻底理解js中this的指向
- 彻底理解js中this的指向,不必硬背。
- 关于js里的this关键字的理解
- 从Ecma规范深入理解js中的this的指向
- 对JS中global、window、document、this区别的理解
- 图说js中的this——深入理解javascript中this指针
- 彻底理解js中this的指向
- 理解js的几个关键问题(2): 对象、 prototype、this等
- 彻底理解js中this的指向
- JS中的this理解
- js 深入理解this指向问题
- js中this理解
- js中关于this对象的简单理解
- 小白也能彻底理解js中this的指向问题
- js中this对象理解
- 彻底理解js中this的指向,不必硬背。