zoukankan      html  css  js  c++  java
  • JS中arguments对象

    与其他程序设计语言不同,ECMAScript 不会验证传递给函数的参数个数是否等于函数定义的参数个数。

    开发者定义的函数都可以接受任意个数的参数而无需跟定义的函数相匹配(根据 Netscape 的文档,最多可接受 255 个),而不会引发任何错误。任何遗漏的参数都会以 undefined 传递给函数,多余的参数函数都将会忽略掉。

    arguments 对象

    arguments对象和Function是分不开的。因为arguments这个对象不能显式创建,arguments对象只有函数开始时才可用。

    无需指出参数名,就能访问参数:arguments不是数组,而是一个类似数组的对象,但是它访问单个参数的方式与访问数组元素的方式相同:arguments[0]、arguments[n]

    function sayHi(){
      console.log(arguments[0]);
    }
    sayHi("aaa","bbb");    //aaa

    arguments.length 得到参数的个数

    function howManyArgs() {
      console.log(arguments.length);
    }
    
    howManyArgs("string", 45); //2
    howManyArgs();          //0
    howManyArgs(12);          //1

    callee属性:返回正被执行的 Function 对象,也就是所指定的 Function 对象的正文。callee 属性是 arguments 对象的一个成员,仅当相关函数正在执行时才可用,大多用来针对同个方法多处调用并且传递参数个数不一样时进行使用

    var sum = function (n) {
      if (1 == n) {
        return 1;
      } else {
        return n + arguments.callee(n - 1);
      }
    }
    console.log(sum(6));

     

  • 相关阅读:
    随机变量和期望
    lj的锁
    lyd的旅行
    sg函数和nim游戏的关系
    game with probability problem
    cf 853 B Jury Meeting [前缀和]
    cf 853 A planning [贪心]
    [ZJOI2015][bzoj3924] 幻想乡战略游戏 [动态点分治]
    [IOI2011] Race [点分治]
    [网络流24题] 星际转移问题
  • 原文地址:https://www.cnblogs.com/wenxuehai/p/10329724.html
Copyright © 2011-2022 走看看