Nastavitev privzete vrednosti parametra za funkcijo JavaScript
Želim, da ima funkcija JavaScript neobvezne argumente, za katere nastavim privzeto vrednost, ki se uporabi, če vrednost ni določena (in se ne upošteva, če je vrednost posredovana). V jeziku Ruby lahko to storite takole:
def read_file(file, delete_after = false)
# code
end
Ali to deluje tudi v javascriptu?
function read_file(file, delete_after = false) {
// Code
}
2271
3
Iz ES6/ES2015 so privzeti parametri v specifikaciji jezika.
samo deluje.
Referenca: Privzeti parametri - MDN
Lahko tudi simulirate privzete imenovane parametre z destrukturiranjem:
Pred ES2015,
Načinov je veliko, vendar mi je ta metoda najljubša - omogoča, da vnesete vse, kar želite, vključno z false ali null. (
typeof null == "object"
)To dodeli
delete_after
vrednostdelete_after
, če to ni falsey vrednost, sicer dodeli niz"my default here"
. Za več podrobnosti si oglejte Doug Crockford'pregled jezika in si oglejte razdelek o operatorjih.Ta pristop ne deluje, če želite posredovati falično vrednost, tj.
false
,null
,undefined
,0
ali""
. Če želite, da se posredujejo vrednosti falsey, morate uporabiti metodo iz odgovora Toma Ritterja.Kadar imamo opravka s številnimi parametri funkcije, je pogosto koristno, da uporabniku omogočimo, da argumente parametrov posreduje v objektu, nato pa te vrednosti spoji z objektom, ki vsebuje privzete vrednosti za funkcijo
za uporabo
Osebno se mi zdi, da je nekaj tako preprostega veliko bolj jedrnato in berljivo.