1.this在构造函数中,在对象的方法中,this指向当前对象
对象的方法中 var person={ ‘name‘:‘xm‘, ‘setSex‘:function(){ this.sex=sex; console.log(this); //person这个函数 } } console.log(person.setSex); 构造函数中(构造函数创建对象) function parent(name,age,sex){ this.name=name; this.age=age; this.show=function(){ return this.sex=sex; } console.log(this); //this指向parent } var p1=new parent(‘xh‘,12,‘male‘); p1.show(); console.log(p1.sex); //male
构造函数的this指向new返回的对象
2.在call和apply参数中,this的指向是第一个参数
cal和apply方法可以冒充对象,并使用该对象的方法
一
var x=0; function test(){ alert(this.x); //0 console.log(this); //window } var p={}; p.x=1; p.show=test; p.show.apply(); //this没有指定,故指向window 二 var x=0; function test(){ alert(this.x); //1 console.log(this); //p } var p={}; p.x=1; p.show=test; p.show.apply(); p.show.apply(p); //this指向p对象
总结:this只有在函数被调用时才能确定下来,this指向调用函数的对象
3.DOM元素的监听处理函数的this指向监听器所在的DOM对象
window.setTimeout()和window.setInterval()的函数中的this默认时window对象
var name=‘Lita‘; var timer=setTimeout(function(){ var name=‘L‘; console.log(this.name); // 打印Lita },1000);
原文:https://www.cnblogs.com/lita07/p/12309132.html