// this要在执行时才能确认值,定义时无法确认。下面是常见的几种this指向。
//1、在构造函数执行
function Obj(name,age){
//1、实例化时:会创建一个 空对象 this={}
//2、为this赋予属性
this.name = name;
this.age = age;
//3、把this对象返回出去
return this;
}
//4、把返回的对象赋予obj 这时this才真正有指向、指向obj;
var obj = new Obj("kai",18);
//2、在对象属性执行
var obj = {
name :"A",
printName:function(){
console.log(this.name)//this指向obj
}
}
obj.printName();
//3、在普通函数执行
function obj(){
console.log(this)//this指向window
}
//4、继承中执行 call apply bind
function obj(){
console.log(this)//this指向对象{name:"李磊"}
}
obj.call({name:"李磊"},null)// obj函数被{name:"李磊"}继承