js函数的参数

js函数的参数:
js是弱类型的编程语言,调用函数时既不在乎函数的参数,也不在意参数的类型

即便你定义的函数值接受两个参数,在调用这个函数时也未必一定要是两个参数。
可以传递一个、三个甚至不传递参数,而解析器永远不会有什么怨言.
之所以会这样,原因是ecmascript中的参数在内部是用一个数组来运行的。函数接受到的永远是这个数组,而不关心数组中包含哪些参数(如果有参数的话)如果这个数组中不包含任何元素,无所谓;如果包含多个元素,也没问题.

所有参数都可以通过arguments对象来获取

function Animal(name){      
    this.name = 'animal';      
    this.showName = function(){      
        console.log(this.name);  
        console.log(name);
    }  
    console.log(arguments);
}   

获取方法的参数个数

function test(a,b){
    var actual = arguments.length;
    var expected = test.length;
    console.log(actual);             // 5  实际传入5个
    console.log(expected);        // 2   期望 2个
  console.log(arguments[1]); // 输出 43
} test(23,43,63,23,23);

arguments的callee属性

表示对函数对象本身的引用,也就是所指定的 Function 对象的正文,这有利于实现匿名函数的递归或者保证函数的封装性。

示例(递归调用):

var sum=function(n){
    if(1==n) {
        return 1;
    } else {
     console.log(n);
return n + arguments.callee(n-1); } } alert(sum(100));
原文地址:https://www.cnblogs.com/isdom/p/webclips041.html