2015-07-02 61 views
2

調用函數我有一個功能,它看起來像這樣:傳遞參數的名稱,而在JavaScript

function helo(a,b){ 
    if(a) 
    { 
     //do something 
    } 
    if(b) 
    { 
     //do something 
    } 
} 

現在,如果我想指定的參數將被傳遞,同時調用直升機,我該怎麼做,在javascript,即

如果我只想發送參數b,我該如何調用函數helo?

helo(parameterB); 

眼下參數a取值

+0

這應該工作。然而,我正在尋找的是如果有一種方法來指定確切的參數 – user1692342

回答

9

你最好的選擇是隻傳遞一個包含所有參數的對象:

function myFunction(parameters){ 
    if(parameters.a) { 
     //do something 
    } 
    if(parameters.b) { 
     //do something 
    } 
} 

然後,你可以調用該函數是這樣的:

myFunction({b: someValue}); // Nah, I don't want to pass `a`, only `b`. 

如果您希望能夠通過falsy值作爲參數,你會不得不改變if SA位:

if(parameters && parameters.hasOwnProperty('a')){ 
    //do something 
} 

另一種選擇是簡單地傳遞的參數null(或任何其他falsy值),你不希望使用:

helo(null, parameterB); 
2

在JavaScript參數是按照順序匹配,所以如果你想通過僅第二個參數,你必須離開第一個空

helo(null,parameterB); 
0

而不是傳遞多個不同的參數,您可以傳入一個參數,這是一個對象。

例如:

function helo(args){ 
    if(args.a){ ... } 
    if(args.b){ ... } 
} 

helo({b: 'value'}); 
0

您可以使用的空兩個語法:

helo(null,parameterB); 

helo(undefined,parameterB);