javascript - ES6 objektdestrukturering standardparametere


Jeg prøver å finne ut om det finnes en måte å bruke objekt-destructuring av standardparametere på uten å bekymre meg for at objektet er delvis definert. Vurder følgende:

(function test({a, b} = {a: "foo", b: "bar"}) {
  console.log(a + " " + b);
})();

Når jeg kaller dette med {a: "qux"}, for eksempel, ser jeg qux undefined i konsollen når det jeg egentlig ønsker er qux bar. Finnes det en måte å oppnå dette på uten å manuelt sjekke alle objektets egenskaper?

Svar #1

Ja. Du kan også bruke "defaults" i destrukturering:

(function test({a = "foo", b = "bar"} = {}) {
  console.log(a + " " + b);
})();

Dette er ikke begrenset til funksjonsparametere, men fungerer i alle destruktureringsuttrykk.

Relaterte artikler