本文记录了一些 ES6 函数相关的改动,比较重要的就是箭头函数及箭头函数内部 this 的变化,其他一些不常见的概念我也仅仅是看了看,并没有实际操作测试效果。待需要用到的时候再研究。
rest 参数
1 | const add = (...values) => { |
扩展运算符
扩展运算符就是三个点 ...
,将一个数组转为用逗号分隔的参数序列。
1 | console.log(...[1, 2, 3, 4]); |
扩展运算符用于函数调用
1 | function sum(a, b) { |
替代 ES5 的 apply,ES5 中如果要将一个数组转为参数传递,需要用到 apply 方法,而 ES6 中拓展运算符则替代了这一功能。
1 | let max; |
另外一个例子是在一个数组后追加元素的例子。
1 | // ES5 写法 |
箭头函数
1 | // ES5 |
如果不需要参数或需要多个参数,则吧多个参数用括号括起来
1 | var f_es6_1 = () => 5; |
this 对象的变化,使用箭头函数,this 是 undefined,而使用普通函数,this 返回的是全局对象。
1 | setInterval(() => console.log(this), 1000); |
箭头函数中是没有 this 指针的,如果在箭头函数中打印 this 有具体的值,是因为其使用了外层代码块的 this。如下案例来自书中。
1 | // ES6 |