this指向(有四种)
第一种:方法调用 指向当前对象 或方法名
var age = 38;
var obj = {
age: 18,
getAge: function() {
console.log(this.age);
}
};
obj.getAge();
--------------------------------------------------
// 变式:
var fn = obj.getAge;
fn();
第二种:函数调用,里面的this指向的是window
var age = 38;
var obj = {
age: 18,
getAge: function() {
var fn = function() {
console.log(this.age);
};
fn();
}
};
obj.getAge();
第三种:构造函数调用:this指向调用它的对象
var age = 38;
var obj = {
age: 18
};
var getAge = function() {
console.log(this.age);
};
obj.get = getAge;
obj.get();
第四种:上下文调用模式,this指向谁?指向的是传入的对象
call 和 apply