2013-10-15 59 views
0

我試圖用可選參數創建一個函數。帶可選參數的函數

function RetvinkletTrekant(par1, par2, par3, par4, par5, par6){ 

    if (par1) {var a = par1} 
    if (par2) {var b = par2} 
    if (par3) {var c = par3} 
    if (par4) {var A = par4} 
    if (par5) {var B = par5} 
    if (par6) {var C = par6} 

    document.write(A); 
} 

RetvinkletTrekant(null, null, null, 4, null, null); 

在此先感謝。

+4

我認爲你正在尋找*可選*的參數,而不是*最佳*的。 – Bergi

+1

你的問題是什麼?你的代碼沒有按照預期工作,你還期望什麼? – Bergi

+0

傳遞參數args [參數1] ...只是更容易 – timpone

回答

1

如果你實際上是在問「可選參數」而非「最佳參數」然後做這將是使用對象,像這樣的最佳方式。

function RetvinkletTrekant(a){ 

    if (a.par1) { var a = a.par1; } 
    if (a.par2) { var b = a.par2; } 
    if (a.par3) { var c = a.par3; } 
    if (a.par4) { var A = a.par4; } 
    if (a.par5) { var B = a.par5; } 
    if (a.par6) { var C = a.par6; } 

    document.write(A); 
} 

RetvinkletTrekant({ 
    par1: 4 
}); 
+0

您可以(應該)也省略這些'if'語句。如果這些屬性不存在,則無論如何,這些變量將是'undefined'。 – Bergi

0

嘗試重構函數以使用一個參數。更改

function RetvinkletTrekant(par1, par2, par3, par4, par5, par6) { 
// ... 
} 

到這樣的事情

function RetvinkletTrekant(config) { 
// ... 
} 

,其中配置是包含您可選參數的對象:

RetvinkletTrekant({par1: "foo", par5: "bar"});