js中的arguments及其callee属性

arguments

在js的函数内,可以通过arguments来访问参数数组,第一个元素为arguments[0],第二个元素为arguments[1],以此类推。。
arguments是一个类数组对象,可以使用length属性来传递进来多少个参数。 即 arguments.length
arguments的值永远与对应命名参数的值保持同步。例如:

function add() {
    arguments[1]  = 10;
    console.log(arguments.length);
    console.log(arguments[0]+arguments[1]);
};
add(1,2); //结果为11,因为arguments[1]的值被修改为10。arguments长度为2
add(1); //结果为11,arguments.length等于1
add(); //结果为NaN, arguments的length为0
callee属性

arguments有一个callee属性,是一个指针,指向拥有这个arguments对象的函数。 在递归算法的函数里非常适用,例如:

function add(num) {
    if(num<=1) return 1;
    return num+arguments.callee(num-1);
    //return num+add(num-1); //这样写会增加函数的耦合性
};

add(10); //55

又学到一点~

以上。

参考:《Javascript高级程序设计》(第3版)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 3,272评论 0 4
  • 第三章 类型、值和变量 1、存取字符串、数字或布尔值的属性时创建的临时对象称做包装对象,它只是偶尔用来区分字符串值...
    坤少卡卡阅读 662评论 0 1
  • 第一部分 准入训练 第1章 进入忍者世界 js开发人员通常使用js库来实现通用和可重用的功能。这些库需要简单易用,...
    如201608阅读 1,383评论 1 2
  • 早上好!#幸福实修#~每天进步1%#幸福实修10班-15柴咪儿--富阳# 20170815(22/30) 【幸福三...
    柴咪儿阅读 166评论 1 0
  • 四年前我选择了一份按摩的工作,收入比正常工资高些,就是这份工作让我在这里磨练四年,以前的我想只要我用心待人,用心处...
    Chen飞扬阅读 460评论 0 0