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)+"
"); document.write(factorial(6)+"
");
function 函数类型之arguments对象_第1张图片

在上述的代码中,如果我们修改了函数名 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)+"
"); document.write(factorial(6)+"
");

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

你可能感兴趣的:(function 函数类型之arguments对象)