将在 ECMAScript 6 中添加的 rest 参数的用途是什么?
例如,在 ECMAScript 5 中,您可以执行以下操作来获取从第二个元素开始的参数数组:
// ES 5
store('Joe', 'money');
store('Jane', 'letters', 'certificates');
function store(name) {
var items = [].slice.call(arguments, 1); //['money'] in first case
items.forEach(function (item) {
vault.customer[name].push(item);
});
}
这将等同于 ECMAScript 6 中的以下代码:
// ES 6
store('Joe', 'money');
store('Jane', 'letters', 'certificates');
function store(name, ...items) {
items.forEach(function (item) {
vault.customer[name].push(items)
});
}
它们之间的区别仅仅是语法还是存在性能问题?
也适用于扩展运算符 (...)
//in ecmascript5
var max = Math.max.apply(null, [14, 3, 77]);
//but in ecmascript6
var max = Math.max(...[14, 3, 77]);
这只是语法更改还是性能问题?