JS-Parameterobjekt implementiert optionale Parameter und Parameter-Standardwerte
Die Voraussetzung für das Weglassen von Parametern ist, dass die Funktion identifizieren kann, welchen Parameter Sie übergeben möchten. Vereinbarung
1 Nach den ausgelassenen Parametern festlegen
2. Das Weglassen von Parametern kann nicht zu Mehrdeutigkeiten mit anderen Funktionen führen (js hat dieses Problem nicht)
Das Programm erfordert, dass Sie Parameter in der Reihenfolge übergeben, in der sie definiert sind. Was später nicht weitergegeben wird, wird weggelassen. Wenn Sie die Mitte weglassen möchten ... Übergeben Sie leider selbst null oder undefiniert.
Bei Javascript kann der Parametertyp durch einfache Beurteilung identifiziert werden, um beispielsweise den Effekt zu erzielen, dass Zwischenparameter weggelassen werden.
var set = function(name, date, age) { if (typeof date === "number") { age = date; date = undefined; } // .... }
Hier wird einfach nach Typ identifiziert. In komplexeren Situationen können Sie reguläre Ausdrücke verwenden, um Domäne, URL, E-Mail usw. zu identifizieren. Dies ist jedoch schwieriger zu sagen und die Codelogik ist komplex und nicht einfach zu schreiben.
Wenn viele Parameter vorhanden sind und einige davon weggelassen werden können, wird die Verwendung von Parameterobjekten empfohlen.
ES5 implementiert ein optionales Parameterobjekt
var CookieUtil = { set: function(args) { var name = args.name; var value = args.value; var expires = args.expires; var path = args.path; var domain = args.domain; var secure = args.secure; // ... } } CookieUtil.set({ name: "name", value: "Nicholas", path: "/books/projs/", domain: "www.wrox.com", expires: new Date("January 1, 2010") });
ES6 implementiert ein optionales Parameterobjekt – Syntax-Zucker-Destrukturierungszuweisung
function doSome({a,b=2,c}){ console.log(a,b,c) } doSome({a:5,c:22}) // 5 2 22