zoukankan      html  css  js  c++  java
  • 函数参数-arguments-reset参数

    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)  
  • 相关阅读:
    桌面工具集
    运维工具集
    使用Maven插件构建Spring Boot应用程序Docker镜像
    解决Ubuntu 17.10设置面板打不开的问题
    防止Web表单重复提交的方法总结
    深入浅出mybatis之启动详解
    yum方式安装mysql
    在Java中调用Python
    UUID在Java中的实现与应用
    VM克隆后找不到eth0的问题解决
  • 原文地址:https://www.cnblogs.com/yuyedaocao/p/12060038.html
Copyright © 2011-2022 走看看