Javascript 函数参数

由 alexbro 创建,youj 最后一次修改 2017-01-06

JavaScript函数可以接受任意数量的参数。

Javascript函数参数存储为数组样结构调用 arguments

参数可以增长为包含任意数量的值。

这些值通过数字索引引用,并且有一个 length 属性来确定 arguments 中有多少个值。

arguments 对象在任何函数内部可用。

函数中的命名参数存在是为了方便起见不限制函数可以接受的参数的数量。

arguments 对象不是Array和的实例因此不具有与数组相同的方法。

Array.isArray(arguments)总是返回false。

JavaScript不会忽略命名参数的函数。

函数期望的参数数量存储在函数“s length"属性上。

length属性指示其期望的参数的数量。

例子

以下代码显示如何使用参数和函数长度。

function myMethod(value) { /*www.w3cschool.cn*/
    return value; 
} 

console.log(myMethod("www.w3cschool.cn!"));        
console.log(myMethod("www.w3cschool.cn!", 2));    
console.log(myMethod.length);        

myMethod = function() { 
    return arguments[0]; 
}; 

console.log(myMethod("www.w3cschool.cn!"));        
console.log(myMethod("www.w3cschool.cn!", 2));    
console.log(myMethod.length);        

上面的代码生成以下结果。

下面的代码显示了如何创建一个函数来对任意数量的参数求和。

function sum() { //www.w3cschool.cn
var result = 0, 
        i = 0, 
        len = arguments.length; 
    while (i < len) { 
        result += arguments[i]; 
        i++; 
    } 
    return result; 
} 

console.log(sum(1, 2));         
console.log(sum(13, 14, 15, 16));
console.log(sum(5,0));          
console.log(sum());    

上面的代码生成以下结果。

重载

JavaScript函数可以接受任意数量的参数,并且不指定函数采用的参数类型。

JavaScript函数实际上没有签名。

Javascript功能不支持重载。

以下代码显示了声明两个具有相同名称的函数时会发生什么:

function myMethod(message) { 
    console.log(message); 
} 

function myMethod() { 
    console.log("Default message"); 
} 

myMethod("Hello!");     

上面的代码生成以下结果。

在JavaScript中,当定义具有相同名称的多个函数时,在您的代码中最后出现的一个wins。

我们可以使用 arguments 对象来模拟函数重载。

function writeLine(message) { 
    if (arguments.length === 0) { 
        message = "Default message"; 
    } 
    console.log(message); 
} 
writeLine("Hello!");     
writeLine("");

上面的代码生成以下结果。

以上内容是否对您有帮助:

二维码
建议反馈
二维码