1)new关键字的执行过程
- new构造函数后,会在内存中创建一个空对象
- this就会指向刚才创建的这个空对象
- 执行构造函数中代码,给空对象添加属性方法
- 返回这个新的对象(所以构造函数中不需要return)
2)箭头函数
箭头函数内的this是静态的,指向定义时所在的对象,而不会是调用时的对象,this指向不可以改变
var age=18
var obj={
age:20,
getAge(){
//构造函数,谁调用,this就指向谁
console.log(this.age);
},
getAge1:()=>{
//this是静态的,指向定义时所在的对象(window对象),不能作为构造函数
console.log(this.age);
},
}
obj.getAge()//20
obj.getAge1()//18