javascript - es6扩展运算符...的问题
问题描述
扩展符复制数组我能理解,但用于函数传递参数的不懂

如上,为什么函数参数加上扩展运算符以后,就能接受若干个参数?
fn(...arg)要怎么理解
问题解答
回答1:函数定义的时候, 这应该叫剩余参数.
如果函数的最后一个命名参数以...为前缀,则在函数被调用时,该形参会成为一个数组,数组中的元素都是传递给该函数的多出来的实参的值。
看 MDN 详细解释:https://developer.mozilla.org...
回答2:你可以先看一下这个栗子
这里的...arg其实是获取arguments的值,所以你方法可以改写成这样
function fn(){ var arg = [...arguments]; console.log(...arg);}回答3:
把arguments转换成数组
回答4:官方解释:
Bind trailing parameters to an array.
用在函数参数中,就是将此处开始的参数转换成一个数组。
fn(...args)//所有参数变为数组fn(a, ...args)//从第二个参数变为数组回答5:
函数的形参本来就会保存到argument这个类数组里边,...操作符可以把类数组转成数组
回答6:你需要ECMAScript 6 入门
回答7:你可以理解为,fn(...arg) 是将参数的参数,全部放置在arg这个数组里.不管你调这函数时,传多少个参数,都可以由arg来获取.

函数参数可以通过arguments这个类数组对象获得,你传入的任意多参数本质上在函数内部就是以类数组对象存在的,所以加上扩展运算符,只是把这个类数组变成了参数序列
相关文章:
1. docker网络端口映射,没有方便点的操作方法么?2. 为什么要使用javascript函数包装器(添加在coffeescript中)“。call(this)”3. docker-compose 为何找不到配置文件?4. MySQL的SELECT...FOR UPDATE究竟起什么作用5. python - Fiddler+Android模拟器抓取app,json数据被加密了,如何解析?6. angular.js - $emit(,)的具体意思是什么作用呢?7. javascript - vue使用keep-alive不能保持滚动位置问题。8. javascript - 小米浏览器中,图片导致fixed定位的元素无法显示9. javascript - 一个字符串转换成数字,例子就是a="2,322.222",b=’1,211.21’,如何在angualr中执行相减10. python - 如何在docker上部署pyspider

 网公网安备
网公网安备