2016-11-19 3 views
-1

Warum hat ES6 entschieden, dass die Zuweisung auf der linken Seite für destrukturierte Aufgaben sinnvoller oder nützlicher ist? Nur auf den ersten Blick scheint Code fehleranfälliger zu sein, da die Zuweisung je nach Situation auf beiden Seiten erfolgen kann.Warum hat ECMASCRIPT 6 die Seiten für die Zuordnung beim Destrukturieren umgekehrt?

let obj = { first: 'Jane', last: 'Doe' }; 
let { first: f, last: l } = obj; 
// f = 'Jane' 
// l = 'Doe' 

f und L beide scheinbar auf der linken Seite definiert ist, Werte aus einer Kombination der var Namen auf der linken und Werte dieser Vars von rechts.

Da die Gründe für diese sytax das es das gleiche wie Objektdeklaration Syntax halten ist, warum nicht stattdessen verwendet hätte ECMA: es

let { f: first, l: last } = obj; 
+5

"jetzt kann diese Zuweisung auf beiden Seiten passieren" Die Variablen, die Sie zuweisen, befinden sich immer noch auf der linken Seite, die Daten, die Sie diesen Variablen noch auf der rechten Seite zuweisen, nein? – tkausl

+2

Kannst du Code zeigen, den du für verwirrend hältst? –

+4

Ich verstehe wirklich nicht den Sinn dieser Frage. – undefined

Antwort

5

Da das Objekt Literalsyntax halten soll: die Eigenschaft Name kommt vor dem Doppelpunkt. Die Syntax ist Nest soll, und das wäre nicht richtig, wenn das Ziel auf der linken Seite ist:

let {propName: [arrayElement, ...moreElements], otherName: {nestedProp: targetName}} = obj; 

In Ihrem Ansatz wäre es

let {[arrayElement, ...moreElements]: propName, {targetName = nestedProp}: otherName} = obj; 

sein, wo der Darm nicht Sinn machen.

Verwandte Themen