Frage

Firefox 3.5.3 (zumindest) mir erlaubt, code zu schreiben, wie :

var array = [4, 5, 6];
var foo, bar, baz;
[foo, bar, baz] = array;

an welcher Stelle

foo => 4
bar => 5
baz => 6

das kann sehr hilfreich sein für die code-Klarheit.

Ist, dass als ECMAScript-kompatible?Ich wollte nicht sehen, nichts in der Spezifikation, aber JSLint gibt einen Fehler zurück.

War es hilfreich?

Lösung

Nein, das ist ein feature eingeführt in JavaScript 1.7 genannt destructuring assignment.ECMAScript-JavaScript ist nicht.ECMAScript ist die versuchte Vereinheitlichung einiger JavaScript-Funktionen.Es gibt nur zwei JavaScript-engines:(Spider|Trace|Action)Affe und Nashorn.Jeder andere Motor ist eine ECMAScript-engine.

Hier sind einige Beispiele:

var {a, b} = {b:2, a:1}; // a === 1, b === 2
var [c, d] = [3, 4]; // c === 3, d === 4
var {x: e} = {x: 5}; //  e === 5
function f({a, b: c}, [d, e]) {
  // same as: var [{a, b: c}, [d, e]] = arguments
}

Oper teilweise implementiert einige destructuring assignment.Es unterstützt es nicht für Objekte oder in der Funktion Argumente, aber es unterstützt Ihr einfaches Beispiel.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top