2013-05-01 67 views
0

我正在用Javascript編寫一個應用程序,雖然我對該語言感到滿意,但我對未使用的參數感到疑惑。在javascript中只使用一個函數的參數

說我有一個功能如下:

function test(data, complete){ 
    if (data){ 
     return complete(null, 'yes'); 
    } 
    else{ 
     return complete('error', null); 
    } 
} 

我叫一個回調函數,但我只是在檢查錯誤興趣 - 如果存在數據,我可以用我的計劃向前推進。如果我只是將錯誤參數傳遞給函數,可以嗎?

test(data, function(err){ 
    if(err){ 
     //Uh Oh 
    } 
    else{ 
     //Keep going 
    } 
}); 

還是最好,如果我通過錯誤和結果(即使結果變量仍然未使用)?

test(data, function(err, result){ 
    if(err){ 
     //Uh Oh 
    } 
    else{ 
     //Keep going 
    } 
}); 

回答

4

如果我只是將錯誤參數傳遞給函數,可以嗎?

是的。沒有收到明確值的參數將會收到undefined,但是仍然存在並且在本地範圍內,因此仍然會在更廣泛的範圍內屏蔽具有相同名稱的變量。

另外,任何額外的參數仍然可以通過類似數組的arguments object訪問。

+1

+1用於提及參數 – 2013-05-01 15:12:24

2

沒關係。

函數參數僅用於創建局部變量。
無論聲明如何,您都可以將任意數量的參數傳遞給任何函數。

+0

將參數傳遞給函數而不是參數;) – zeroflagL 2013-05-01 15:29:45

相關問題