在面向对象编程中,this指针的指向我常常弄不清楚,看了几篇博客以后,乘有了一点点相识,连忙做笔记记录下来。
this的指向取决于挪用的形式,而在js中有4中挪用形式:要领挪用形式,函数挪用形式,组织函数挪用形式,apply挪用形式
要领挪用形式
当一个函数是作为一个对象的属性被挪用时,this会指向该属性所属的对象。
var name = 'window';
var people = {
name : 'jeck',
age : function(){
return this.name
}
};
people.age(); //jeck
函数挪用形式
当一个函数不是作为一个对象的属性被挪用时就是函数挪用,这时候this就会指向window对象。
var name = 'window';
var people = {
name : 'jeck',
age : function(){
(function(){
var name = 'andy';
console.log(this.name)
})
}
};
people.age(); //window