EmberJS: clases e instancias
Esto no es más que actualizar la implementación de la clase sin redefinirla y reabrir la clase especificando nuevas propiedades en ella. Esto es posible utilizando los siguientes métodos:
reopen()- Agrega propiedades y métodos a las instancias .
reopenClass()- Agrega propiedades y métodos a las clases. .
Ejemplo
El siguiente ejemplo utiliza los métodos mencionados anteriormente y especifica las nuevas propiedades o métodos en él:
import Ember from 'ember';
export default function() {
//reopen() method for instances
var Person = Ember.Object.extend ({
firstName: null,
lastName: null,
});
//adding new variable to the Person class
Person.reopen ({
middleName: 'Smith',
});
document.write('Middle Name: '+Person.create().get('middleName'));
document.write("<br>");
//reopenClass() method for classes
Person.reopenClass ({
//creating new function for class Person
openClass: function() {
return Person.create({isMan: true});
}
});
document.write('isMan: '+Person.openClass().get('isMan'));
}
Ahora abra el archivo app.js y agregue la siguiente línea en la parte superior del archivo:
import reopenclass from './reopenclass';
Donde, reopenclass es un nombre del archivo especificado como "reopenclass.js" y creado en la carpeta "app".
A continuación, llame a la "clase de reapertura" heredada en la parte inferior, antes de la exportación. Ejecuta la función reopenclass que se crea en el archivo reopenclass.js -
reopenclass();
Salida
Ejecute el servidor ember y recibirá el siguiente resultado: