《JavaScript中this关键字详解》
this指向函数执行时的当前对象,而与声明环境无关
var someone = {
name: "Bob",
showName: function(){
alert(this.name);
}
};
var other = {
name: "Tom",
showName: someone.showName
}
other.showName(); //Tom
解析:调用show函数时,没有明确的当前对象
var name = "window";
varBob = {
name: "Bob",
showName: function(){
alert(this.name);
}
};
varTom = {
name: "Tom",
showName: function(){
var fun = Bob.showName;
fun();
}
};
Tom.showName(); //window
解析:
虽然不是在
window
中,而是在
Tom
对象中,但是没有明确的当前对象,所以this指向window
《深入浅出JavaScript中的this》
函数的调用可以有几种方式
- 作为对象方法调用,this指向这个对象
- 作为函数调用,this指向全局对象
function say(){
console.log(this);
};
say(); // 虽然简单,但这就是作为函数调用,也就是上面说的没有明确对象