1.箭头函数简单,只有一个注意点,this指向问题。
'use strict'
class Person{
constructor(name,age){
this.name=name;
this.age=age;
}
change(name,age){
var self=this;
let fn=()=>{
console.log(this===self) //true
this.changeAge(22);
this.changeName('ggb')
}
fn();
}
changeAge(age){
this.age=age;
}
changeName(name){
this.name=name;
}
}
let p = new Person('ggq',34);
p.change('ggb',30)
console.log(p)//Person { name: 'ggb', age: 22 }
2.箭头函数指向问题
'use strict'
class Person{
constructor(name,age){
this.name=name;
this.age=age;
}
change(name,age){
var self=this;
function fn(){
console.log(this===self) //false
console.log(this)//undefined
// this.changeAge(22);//报错
// this.changeName('ggb')
}
fn();
}
changeAge(age){
this.age=age;
}
changeName(name){
this.name=name;
}
}
let p = new Person('ggq',34);
p.change('ggb',30)
3.箭头函数不能通过new 构造一个实例