Indstille en standardparameterværdi for en JavaScript-funktion
Jeg vil gerne have en JavaScript-funktion til at have valgfrie argumenter, som jeg sætter en standardværdi på, som bliver brugt, hvis værdien ikke er defineret (og ignoreres, hvis værdien er overført). I Ruby kan man gøre det på denne måde:
def read_file(file, delete_after = false)
# code
end
Virker det også i JavaScript?
function read_file(file, delete_after = false) {
// Code
}
2271
3
Fra ES6/ES2015 findes standardparametre i sprogspecifikationen.
virker bare.
Reference: Standardparametre - MDN
Du kan også [simulere standardparametre med navngivne parametre via destrukturering] (http://exploringjs.com/es6/ch_parameter-handling.html#sec_named-parameters):
Pre ES2015,
Der er mange måder, men dette er min foretrukne metode - den giver dig mulighed for at indsætte alt, hvad du vil, herunder false eller null. (
typeof null == "object"
)Dette tildeler
delete_after
værdien afdelete_after
, hvis det ikke er en falsk værdi, ellers tildeles strengen"my default here"
. For flere detaljer kan du læse Doug Crockford's oversigt over sproget og se afsnittet om Operatorer.Denne fremgangsmåde virker ikke, hvis du ønsker at sende en falsk værdi, dvs.
false
,null
,undefined
,0
eller""
. Hvis du har brug for false-værdier, skal du bruge metoden i Tom Ritter's svar.Når der er tale om et antal parametre til en funktion, er det ofte nyttigt at give forbrugeren mulighed for at videregive parameterargumenterne i et objekt og derefter sammensmelte disse værdier med et objekt, der indeholder standardværdierne for funktionen
til brug
Jeg synes personligt, at noget så simpelt som dette er meget mere kortfattet og læsbart.