2012-04-27 1 views
32

Beim Durchsuchen der mit Ember.js geschriebenen Anwendungen habe ich festgestellt, dass Arrays manchmal mit einem Aufruf an Ember.A() definiert sind und manchmal Array-Literale verwendet werden. Wenn ich Ember.A([1]) in der Browser-Konsole ausgeführt wurde, sieht der Rückgabewert wie ein Array aus und Arrays, die mit Array-Literalen erstellt wurden, hatten die Methoden Ember.js pushObject und Freunde. Ist der Aufruf an Ember.A() nur eine Möglichkeit, eine Ember.Array zu definieren, wenn Sie keine Prototyp-Erweiterungen verwenden? Ansonsten sind alle Arrays gleich?In Ember.js, was ist der Unterschied zwischen [] und Ember.A ([])?

Antwort

42

Ihre Frage enthält die richtige Antwort: Ember.A() nur eine Möglichkeit, eine Ember.Array zu definieren, wenn Sie die Prototyp-Erweiterungen deaktiviert haben. Sie werden feststellen, dass Embers interner Code immer Ember.A() verwendet.

+3

Die Prototyperweiterungen können deaktiviert werden, indem vor dem Laden von Ember 'ENV.EXTEND_PROTOTYPES = false' gesetzt wird. Sie sind standardmäßig aktiviert. –

+1

Wie erstellt man und Ember.A() der Länge 6? – SuperUberDuper

+2

wahrscheinlich besser als eine neue Frage, aber es ist: 'Ember.A (neue Array (6))' –