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

2018-01-10 15:54 更新

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

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

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

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

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

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

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

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

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

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

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

例子

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

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

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

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

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

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

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

function sum() { //m.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ù)實(shí)際上沒有簽名。

Javascript功能不支持重載。

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

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

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

myMethod("Hello!");     

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

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

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

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

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

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

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)