簡體   English   中英

如何在不使用undefined的情況下在函數調用中指定(默認)參數

[英]How to specify (default) parameters in function call without using undefined

在具有默認參數的Javascript函數中,是否有任何方法可以通過名稱來指定傳遞給函數調用的參數,而不是它們在函數定義中的順序?

function foo(a = 1, b = 2, c = 3){
    console.log(a, b, c);
};

foo(); // => 1 2 3

foo(5); // => 5 2 3

foo(b = 5); // => 5 2 3

如您所見,僅當我插入undefined代替以前的參數時,我才能更改所需的默認參數:

foo(undefined, b = 5); // => 1 5 3

// which happens to be the same as

foo(undefined, 5); // => 1 5 3

我知道這在Python中是可能的:

def foo(a = 1, b = 2, c = 3):
    print(a, b, c)

foo(b = 5) # => 1 5 3

有沒有辦法在Javascript中執行此操作而不插入undefined

首先,好的做法是最后移動可選參數。

在您的情況下,您可以將可選參數放在一個對象中,以指定要傳遞的對象的哪個屬性,如下所示:

 function foo({a=1, b=2, c=3} = {}){ console.log(a, b, c); }; foo(); foo({b:5}) 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM