首页 > 代码库 > javascript 中的this指向

javascript 中的this指向

---恢复内容开始---

this 指向

1、this指向调用函数时绑定的对象。当没有绑定对象时,则指向windows

 

2、浏览器中,全局环境的this指向windows对象。

 

3、可以通过call/apply修改this的指向,es5可以通过bind修改this的指向

function Person(){

this.name = ‘person‘;

this.msg = function(msg){

msg = msg || this.name;

alert(msg);

}

}

function Cat(){

this.name = ‘cat‘;

}

var p = new Person();

var c = new Cat(); 

p.msg.call(c,‘11‘,22);//cat

 

4、箭头函数的this,定义在哪里,则指向哪里 

function Person(){

this.name = ‘person‘;

this.msg = function(msg){

msg = msg || this.name;

alert(msg);

}

this.init = function(){

document.onclick = ()=>{

console.log(this); 

//正常情况下此时的this应该指向document,然而此时却指向了Person对象

}

}

}

p.init();

---恢复内容结束---

javascript 中的this指向