function 函数类型之arguments对象

function 下
function 就是函数,函数就是一段代码,这个没啥好说的,我们把函数起个名字,然后放起来,想用的时候再调用。JavaScript 中有很多内置的函数,比如 alert() document.write() 之类的函数。

函数的内部属性

在函数的内部 有两个特殊的对象, argumentsthis

arguments 对象

arguments 对象是一个类数组的对象,它包括传入函数中的所有的对象,主要用途是保存函数的参数。这个对象含有一个 callee 属性,是一个指针属性,指向有 arguments 对象的函数。
我们来看一个阶乘递归 factorial 的小例子:

function factorial(num){
if(num <=1 ){
    return 1;
}else {
    return num * factorial(num-1);//阶乘,递归
}
}
document.write(factorial(5)+"<br/>");
document.write(factorial(6)+"<br/>");     

在上述的代码中,如果我们修改了函数名 factorialsum 那么就是要同时修改递归调用的函数名 num * factorial(num-1);num * sum(num-1); 如果有很多个递归调用函数的话逐一修改是不理智的行为,我们这时候需要用 arguments.callee 属性。对于阶乘函数一般会用到递归算法,函数内部一般会调用自身,这时候函数名不改变没问题,一旦函数名改变那么函数内部的函数名就是要逐一修改,处理起来很麻烦,这时候就需要我们之前提及的 arguments.callee 属性。我们把代码复制下来。看看 arguments.callee 怎么使用。

function factorial(num){
if(num <=1 ){
    return 1;
}else {
    return num * arguments.callee(num-1);//阶乘,递归
}
}
document.write(factorial(5)+"<br/>");
document.write(factorial(6)+"<br/>");     

结果和上面的没啥区别, arguments.callee 就是实现了动态的调用自身。
This 感觉有点多,单独开一篇文章

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

推荐阅读更多精彩内容

  • 本文档内容参考 《JavaScript 闯关记》之函数 函数是一段代码,它只定义一次,但可以被执行或调用任意次。在...
    穿越人海遇见你阅读 1,030评论 0 1
  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 3,279评论 0 4
  • 之前写过函数也属于引用类型,与其他引用类型一样也是具有属性和方法。由于函数是对象,继承自object,因此函数名实...
    Miss____Du阅读 5,833评论 4 17
  • 函数是一段代码,它只定义一次,但可以被执行或调用任意次。在 JavaScript 里,函数即对象,程序可以随意操控...
    劼哥stone阅读 914评论 2 6
  • 在我们应用App时,页面是怎么进行跳转的呢?其实这些都是靠Android的核心组件Intent来实现的。 Inte...
    Songzh阅读 599评论 0 0