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: