Ja Nun ja, irgendwie schon. Ich habe zwei Lösungen gefunden. Ich werde nur eine erklären.
Bei dieser Lösung verzichten wir allerdings auf Positionsargumente.
Wir können ein Objekt (fast identisch mit einer dict in Python ), um die Argumente zu übergeben.
In diesem Beispiel verwende ich die Funktion, um den Namen einer Bilddatei zu generieren:
// First we define our function with just ONE argument
function name_of_img(img_desc){
// With this step, any undefined value will be assigned a value
if(img_desc.size == undefined) {img_desc.size = "400x500"}
if(img_desc.format == undefined) {img_desc.format = ".png"}
console.log(img_desc.size + img_desc.format)
}
// Notice inside our function we're passing a dict/object
name_of_img({size: "200x250", format : ".jpg"})
// In Python name_of_img(size="200x250" , format="jpg")
// returns "200x250.jpg"
name_of_img({size: "1200x950"})
// In Python name_of_img(size="1200x950")
// returns "1200x950.png"
Wir können dieses Beispiel modifizieren, so dass wir auch Positionsargumente verwenden können, wir können es auch so modifizieren, dass nicht gültige Argumente übergeben werden können, ich denke, ich werde ein GitHub-Repository dazu erstellen.