• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Frage Standardparameter überspringen

Chronos

Aktives Mitglied
Hallo Forum,

was ist die eleganteste Art und Weise wie man Standard-Parameter in JS überspringt?
Ich beziehe mich auf die neuese JS-Version in der Standard-Parameter unterstützt werden.

Beispiel-Code könnte so aussehen:
Code:
function calculateCuboid(a = 2, b = 4, c = 3) {
  let volume = a * b * c;
  return `${a} * ${b} * ${c} = ${volume}`;
}

console.log(calculateCuboid());

// console.log(calculateCuboid(,10,));
http://jsbin.com/xacicewafu/edit?js,console

Mit überspringen meine ich, dass ich gern nur bspw. "b" neusetzen möchte beim Aufruf der Funktion, die anderen Paremeter aber so bleiben also das ich dann a = 2, b = 10 und c = 3 hätte.

Abwärtskompatibilität spielt hierbei keine Rolle ich will nur eine leicht auf mehrere Variablen skalierbare Möglichkeit.

Danke :)
 
Werbung:
Die Kombination von Default Values und optionalen Parametern sollte mit TypeScript gehen. Ob 'überspringen' möglich ist, habe ich allerdings noch nicht versucht.
 
Werbung:
Die Kombination von Default Values und optionalen Parametern sollte mit TypeScript gehen. Ob 'überspringen' möglich ist, habe ich allerdings noch nicht versucht.
Währe interessant, was TS daraus dann macht.

Ich will ja quasi an einer beliebigen Position eine Variable ändern und die Defaults beibehalten.
Braucht man evtl. nicht so oft(?) aber letztens hätte ich das gebrauchen können.
Ein Flag "default" wäre ja ganz gut, dann muss man kein undefined übergeben.
 
Dann müsste ich aber prüfen, ob undefined übergeben wurde, und wenn ja, soll er den Standardparameter nehmen?

Quasi so?
Code:
a === undefined ? a : neuerWertFürA

Hm macht noch nicht so ganz Sinn für mich

Habs jetzt nicht getestet aber ich denke da musst du nichts extra machen:
https://developer.mozilla.org/de/do...ns/Default_parameters#Übergehen_von_undefined

Erstes Beispiel, Zeile 6.
Sollte also auch umgekehrt funktionieren.
Code:
calculateCuboid(2, undefined, undefined);
calculateCuboid(2);

sollte beides "defaulten".
 
Zuletzt bearbeitet:
Werbung:
Typescript
Code:
public myFunc(foo: number = 2, bar: number = 3): number {
    return foo * bar;
}

public anotherFunc(foo: number = 2, bar: number = 3, baz?: number): number {
    return baz ? foo * bar * baz : foo * bar;
}

console.log(this.myFunc(4, undefined)); // 12
console.log(this.anotherFunc(3, undefined)); // 9
console.log(this.anotherFunc(4, undefined, 4)); // 48
 
Zurück
Oben