分享

javascript ES6语法糖:函数…省略号参数 | 扣丁禅师

 quasiceo 2018-01-23


2016年11月17日 nodejs

1. 语法

function(a, b, ...theArgs) {
  // ...
}

如果一个函数的最后一个形参是以 … 为前缀的,则在函数被调用时,该形参会成为一个数组,数组中的元素都是传递给该函数的多出来的实参的值。

在上例中,theArgs 会包含传递给函数的从第三个实参开始到最后所有的实参 (第一个实参映射到 a, 第二个实参映射到 b)。

基本参考:
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Functions/Rest_parameters

2. 重点

说下...在函数调用时,加与不加什么区别?

下面例子使用typescript实现,需要安装:

npm install -g typescript

Babel也支持ES6新特性,并转成浏览器兼容的语法。

例子:

function fun(p1: string, ...args) {
    console.log("len = %d", args.length);
}

fun("hello", ...[1,2,3]); // len = 3
fun("hello", [1,2,3]); // len = 1,当做数组对象

2.1 保存为test.ts,typescript转成js

tsc --outFile test.js test.ts

2.2 查看测试结果:

nodejs test.js

...是当做3个参数(reset parameter),不加只是作为1个数组参数。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多