Een standaard parameterwaarde instellen voor een JavaScript-functie
Ik zou graag willen dat een JavaScript functie optionele argumenten heeft waar ik een default op zet, die gebruikt worden als de waarde niet gedefinieerd is (en genegeerd worden als de waarde wel wordt doorgegeven). In Ruby kun je dat als volgt doen:
def read_file(file, delete_after = false)
# code
end
Werkt dit ook in JavaScript?
function read_file(file, delete_after = false) {
// Code
}
2271
3
Vanaf ES6/ES2015 staan standaardparameters in de taalspecificatie.
werkt gewoon.
Referentie: Standaard Parameters - MDN
U kunt ook standaard naam parameters simuleren via destructurering:
Vor ES2015,
Er zijn veel manieren, maar dit is de methode die mijn voorkeur heeft - je kunt er alles mee doen wat je wilt, inclusief false of null. (
typeof null == "object"
)Dit wijst aan
delete_after
de waarde vandelete_after
toe als het geen valse waarde is anders wijst het de string"my default here"
toe. Voor meer details, zie Doug Crockford's overzicht van de taal en bekijk de sectie over Operators.Deze aanpak werkt niet als je een falsey waarde wilt doorgeven, d.w.z.
false
,null
,undefined
,0
of""
. Als u falsey waarden wilt doorgeven zou u de methode in Tom Ritter's antwoord moeten gebruiken.Wanneer je te maken hebt met een aantal parameters voor een functie, is het vaak handig om de gebruiker de parameterargumenten in een object te laten doorgeven en dan samen te voegen deze waarden met een object dat de standaardwaarden voor de functie bevat
te gebruiken
Persoonlijk vind ik zoiets eenvoudigs veel beknopter en leesbaarder.