Javascript 函數(shù)參數(shù)

2018-01-10 15:54 更新

JavaScript函數(shù)可以接受任意數(shù)量的參數(shù)。

Javascript函數(shù)參數(shù)存儲為數(shù)組樣結(jié)構(gòu)調(diào)用 arguments 。

參數(shù)可以增長為包含任意數(shù)量的值。

這些值通過數(shù)字索引引用,并且有一個 length 屬性來確定 arguments 中有多少個值。

arguments 對象在任何函數(shù)內(nèi)部可用。

函數(shù)中的命名參數(shù)存在是為了方便起見不限制函數(shù)可以接受的參數(shù)的數(shù)量。

arguments 對象不是Array和的實例因此不具有與數(shù)組相同的方法。

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

JavaScript不會忽略命名參數(shù)的函數(shù)。

函數(shù)期望的參數(shù)數(shù)量存儲在函數(shù)“s length"屬性上。

length屬性指示其期望的參數(shù)的數(shù)量。

例子

以下代碼顯示如何使用參數(shù)和函數(shù)長度。

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

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

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

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

上面的代碼生成以下結(jié)果。

下面的代碼顯示了如何創(chuàng)建一個函數(shù)來對任意數(shù)量的參數(shù)求和。

function sum() { //hgci.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());    

上面的代碼生成以下結(jié)果。

重載

JavaScript函數(shù)可以接受任意數(shù)量的參數(shù),并且不指定函數(shù)采用的參數(shù)類型。

JavaScript函數(shù)實際上沒有簽名。

Javascript功能不支持重載。

以下代碼顯示了聲明兩個具有相同名稱的函數(shù)時會發(fā)生什么:

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

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

myMethod("Hello!");     

上面的代碼生成以下結(jié)果。

在JavaScript中,當定義具有相同名稱的多個函數(shù)時,在您的代碼中最后出現(xiàn)的一個wins。

我們可以使用 arguments 對象來模擬函數(shù)重載。

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

上面的代碼生成以下結(jié)果。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號