标签:apply bind asc 情况 log var click 没有 his
---恢复内容开始---
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();
---恢复内容结束---
标签:apply bind asc 情况 log var click 没有 his
原文地址:http://www.cnblogs.com/lsios/p/7143303.html