Więcej
Ustaw domyślną wartość parametru dla funkcji JavaScript
Chciałbym, aby funkcja JavaScript miała opcjonalne argumenty, które ustawiam domyślnie, które są używane, jeśli wartość nie jest zdefiniowana (i ignorowane, jeśli wartość jest przekazywana). W Ruby możesz to zrobić w ten sposób:
def read_file(file, delete_after = false)
# code
end
Czy to działa w JavaScript?
function read_file(file, delete_after = false) {
// Code
}
2271
3
Od ES6/ES2015, domyślne parametry są w specyfikacji języka.
po prostu działa.
Odnośnik: Default Parameters - MDN
Możesz również symulować domyślne nazwane parametry poprzez destrukturyzację:
Przed ES2015,
Istnieje wiele sposobów, ale jest to moja preferowana metoda - pozwala ci przekazać wszystko, co chcesz, w tym false lub null. (
typeof null == "object"
)To przypisuje
delete_after
wartośćdelete_after
, jeśli nie jest to wartość falsey, w przeciwnym razie przypisuje łańcuch"my default here"
. Aby uzyskać więcej szczegółów, sprawdź Doug Crockford's survey of the language and check out the section on Operators.To podejście nie działa, jeśli chcesz przekazać wartość false, tzn.
false
,null
,undefined
,0
lub""
. Jeśli wymagasz, aby wartości false były przekazywane, musisz użyć metody z Odpowiedź Toma Rittera.Kiedy mamy do czynienia z wieloma parametrami funkcji, często przydatne jest umożliwienie konsumentowi przekazania argumentów parametrów w obiekcie, a następnie merge tych wartości z obiektem, który zawiera wartości domyślne dla funkcji
do użycia
Osobiście uważam, że coś tak prostego jest o wiele bardziej zwięzłe i czytelne.