箭头函数的坑——arguments无法使用

 

1.箭头函数有作用域(词法作用域),词法作用域简单来讲就是,一切变量(包括this)都根据作用域链来查找。

2.箭头函数中的this因为绑定了词法作用域,所以始终指向自身外的第一个this(由于自身没有声明this,所以会去作用域链上找this),也就是始终等于调用它的函数的this(以为这个this离它最近)。

3.严格模式下不允许使用arguments(规定),并且,普通函数里 arguments 代表了调用时传入的参数,但是箭头函数不是,箭头函数会把 arguments 当成一个普通的变量,顺着作用域链由内而外地查询(词法作用域)

4.arguments可以用...rest取代,所以完全没必要追求argument。

 

替代:

let func = (...rest) => {
  console.log(rest)
  //[1,2,3]
}

func(1,2,3)

 

posted @ 2020-06-17 14:02  TTtttt5  阅读(1870)  评论(0编辑  收藏  举报