1、JS中用:arguments

1)存放实参的集合,是一个类似于数组的对象,只有数组的 length,没有数组方法

function  add1(a,b,c) {
console.log(arguments.length) // 实参个数1个
}
add1(3)

2)arguments.callee 指向函数自身,可用于递归,严格模式下已禁用

3)限制参数数量:通过arguments.length 限制传入的参数数量

4)将 arguments 转为数组

Array.prototype.slice.apply(arguments)

5)当没有形式参数时,也可以传入参数,通过arguments引用

function  add1() {
for(var i =0 ;i< arguments.length ; i++) {
console.log(arguments[i]) // 1,2,3
}
}
add1(1,2,3)

6)通过实参个数模拟java,c++重载:是指允许存在多个同名方法,而这些方法的参数不同

function say () {
switch(arguments.length) {
case 0:
return ;
case 1:
return ;
case 2:
return ;
}
}

2、ES6中用:reset参数

1)形式为 : “...变量名” ,该变量是一个数组

2)reset参数位置在尾参数

3)函数的length 不包括 reset参数

function add(...arg){ }
add(1,2,3) 内部实现原理:
function add() {
  for (var _len = arguments.length, arg = new Array(_len), _key = 0; _key < _len; _key++) {
    arg[_key] = arguments[_key];
  } }
剩余参数(只有函数的最后一个参数才可以是剩余参数)
function add(num,...arg){ } // num =1 arg=[2,3]
add(1,2,3)

最新文章

  1. [Android]在Adapter的getView方法中绑定OnClickListener比较好的方法
  2. SPFA(负环) LightOJ 1074 Extended Traffic
  3. ubuntu14.04上安装Mysql-5.7.11
  4. iframe和form表单的target应用简单例子
  5. (转)Mono for Android 优势与劣势
  6. Linux网络基础
  7. iBatis 的删除一条记录
  8. 《HTML5 从入门到精通--7.6.3 单元格垂直跨度——rowspan》
  9. poj3468 线段树+lazy标记
  10. CCF 201609-4 交通规划
  11. [部署]CentOS安装PHP环境
  12. php static 变量的例子
  13. 基础_模型迁移_CBIR_augmentation
  14. oracle任务job
  15. 如何快速切换Python运行版本,如何选择Python版本
  16. discuz修改太阳,月亮,星星等级图标
  17. Mac 安装zsh
  18. ubuntu14.04, libtinyxml.so.2.6.2: cannot open shared object file: No such file or directory
  19. extjs 可视化开发工具
  20. chrome调试工具

热门文章

  1. Design Linked List
  2. Less学习(1)
  3. Synchronized的实现原理(汇总)
  4. Java IO与NIO的总结、比较
  5. 【原创】大叔经验分享(74)nginx对静态文件加速
  6. python之jupyter notebook
  7. javascript中的所有内容都是一个对象:字符串、值、数组、函数…
  8. 从无建立一个vue项目
  9. 公众平台第三方平台 .NET开发
  10. TVM设备添加以及代码生成