箭头函数的一些问题

this指向问题

在普通函数中,this指向根据其使用场景不同改变。而箭头函数中的this始终指向其父级作用域

箭头函数不能作为构造函数

var Person = p => {
  this.name = p;  
}

此时的this并不是指向实例对象,而是指向父级作用域,指向window,所以不能作为构造函数

箭头函数没有arguments

如果想要实现不定参数的调用,就使用...剩余参数实现

var sayHi = (b) => console.log(arguments)
sayHi(10) // 报错
var good = (...g) => console.log(g)
good(1,2,3) // [1, 2, 3]

箭头函数通过apply和bind调用,不会改变this指向,只会传入参数

箭头函数没有原型属性

var a = () => {}
console.log(a.prototype) // undefined

箭头函数在class中声明的方法是实例方法,不是原型方法

class super{
  sayHi = () => {}  
}
var s1 = new super();
var s2 = new super();

s1.sayHi === s2.sayHi // false

 

posted @ 2020-04-17 21:05  ashen1999  阅读(142)  评论(0编辑  收藏  举报