/*this的指向问题:
* 1. 函数在定义的时候this是不确定的,只有在调用的时候才可以确定
* 2. 一般函数直接执行,内部this指向全局window
* 3. 函数作为一个对象的方法,被该对象所调用,那么this指向的是该对象
* 4.构造函数中的this其实是一个隐式对象,类似一个初始化的模型,所有方法和属性都挂载到了这个隐式对象身上,后续通过new关键字来调用,从而实现实例化
*/
// 一般函数直接执行,内部this指向全局window
function test(){
console.log(this)
}
test(); // Window
// 函数作为一个对象的方法,被该对象所调用,那么this指向的是该对象
var obj0={
name:'小农',
run:function(){
console.log(this)
}
}
obj0.run();//指向的就是当前这个obj0这个对象
// 构造函数中的this其实是一个隐式对象,类似一个初始化的模型,所有方法和属性都挂载到了这个隐式对象身上,后续通过new关键字来调用,从而实现实例化
function Animal(){
this.name='小猫';
this.age=5;
this.sex='公';
console.log(this);//指向的就是 实例化之后的对象
}
var animal=new Animal();
console.log(animal);//Animal {name: "小猫", age: 5, sex: "公"}