*当要求动态上下文的时候,就不能够使用箭头函数。也就是this的固定化
1、在使用=>定义函数的时候,this的指向是定义时所在的对象,而不是使用时所在的对象
2、不能够用作构造函数,这就是说,不能够使用new命令,否则就会抛出一个错误
3、不能够使用arguments对象
4、不能使用yield命令
class Animal {
constructor(){
this.type = 'animal'
}
says(say) {
setTimeout(function () {
console.log(this.type + 'says' + say)
},1000)
}
}
var animal = new Animal()
animal.says('hi') // undefined says hi
=>的情况
class Animal() {
constructor() {
this.type = 'animal'
}
says(say) {
setTimeout(() => {
console.log(this.type + ' says ' + say)
}, 1000)
}
}
var animal = new Animal()
animal.says('hi') // animal says hi