2012-04-27 10 views
32

Al mirar a través de aplicaciones escritas con Ember.js, noté que a veces las matrices se definen con una llamada al Ember.A() y, a veces, se usan literales de matriz. Cuando ejecuté Ember.A([1]) en la consola del navegador, el valor de retorno se parece a una matriz y las matrices creadas usando matrices literales tenían los métodos Ember.js pushObject y amigos. ¿La llamada a Ember.A() es solo una forma de definir un Ember.Array cuando no se usan prototipos de extensiones? De lo contrario, ¿todas las matrices son iguales?En Ember.js, ¿cuál es la diferencia entre [] y Ember.A ([])?

Respuesta

42

Su pregunta contiene la respuesta correcta: Ember.A() solo una forma de definir un Ember.Array cuando haya desactivado las prototipos de extensiones. Notarás que el código interno de Ember siempre usa Ember.A().

+3

Las extensiones de prototipo se pueden deshabilitar configurando 'ENV.EXTEND_PROTOTYPES = false' antes de cargar Ember. Están habilitados por defecto. –

+1

¿cómo se crea y Ember.A() de longitud 6? – SuperUberDuper

+2

probablemente sea mejor como una nueva pregunta, pero es: 'Ember.A (new Array (6))' –

Cuestiones relacionadas