yuicer

箭头函数


区别

  1. 写法不同,箭头函数有很多缩写表达式
    function 没有手动写 return 的话返回值会是一个 undefined, 箭头函数虽然一般也是这样,但是存在一个特殊写法 res=>res.result 这个时候默认返回的是 res.result 的值。

  2. 箭头函数 this 指向
    这个基本大家都知道。。。一个调用者,一个上下文

  3. 箭头函数不能用 bind apply call 等
    这里表现很奇怪,使用不报错,但是没效果。。。

1
2
3
4
5
6
7
8
9
10
11
12
window.a = 1
var A = {
a: 2
}
var func = function() {
console.log(this.a)
}
var arrow = () => {
console.log(this.a)
}
func.apply(A) // 2
arrow.apply(A) // 1
  1. 箭头函数没有 arguments 对象

  2. 箭头函数不能当构造函数使用【不能使用 new】

todo

有时间找个 polyfill 看一下 箭头函数 是怎么转换的