Problem with es6 spread operator...
高洛峰
高洛峰 2017-07-05 10:41:47
0
8
989

I can understand the expansion character for copying arrays, but I don’t understand the one used to pass parameters to functions

As above, why can function parameters accept several parameters after adding the expansion operator?

fn(...arg)要怎么理解
高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

reply all(8)
阿神

When defining a function, this should be called the remaining parameters.

If the last named parameter of the function is prefixed with..., then when the function is called, the formal parameter will become an array, and the elements in the array will be the values ​​of the extra actual parameters passed to the function.

See MDN for detailed explanation:
https://developer.mozilla.org...

迷茫

You can take a look at this chestnut first

The...arg here actually gets the value of arguments, so your method can be rewritten like this

function fn(){
    var arg = [...arguments];
    console.log(...arg);
}
Ty80

Convert arguments into array

Peter_Zhu

Official explanation:

Bind trailing parameters to an array.

Used in function parameters, it converts the parameters starting here into an array.

fn(...args)//所有参数变为数组
fn(a, ...args)//从第二个参数变为数组
伊谢尔伦

The formal parameters of the function will be saved in the argument class array. The... operator can convert the class array into an array

给我你的怀抱

You need to get started with ECMAScript 6

淡淡烟草味

You can understand that
fn(...arg) places all the parameters of the parameters in the arg array. No matter how many parameters you pass when you call this function, they can be obtained by arg.

巴扎黑

Function parameters can be obtained through the array-like object arguments. Any multiple parameters you pass in essentially exist as array-like objects inside the function, so adding the spread operator just turns this array-like object into a parameter sequence

Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template