EmberJS - Classi e istanze

Questo non è altro che aggiornare l'implementazione della classe senza ridefinirla e riaprire la classe specificando nuove proprietà in essa. Ciò è possibile utilizzando i seguenti metodi:

  • reopen()- Aggiunge proprietà e metodi alle istanze .

  • reopenClass()- Aggiunge proprietà e metodi alle classi. .

Esempio

L'esempio seguente utilizza i metodi sopra menzionati e specifica le nuove proprietà o metodi in esso -

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'));
}

Ora apri il file app.js e aggiungi la seguente riga all'inizio del file:

import reopenclass from './reopenclass';

Dove, reopenclass è un nome del file specificato come "reopenclass.js" e creato nella cartella "app".

Quindi chiama la "reopenclass" ereditata in fondo, prima dell'esportazione. Esegue la funzione reopenclass che viene creata nel file reopenclass.js -

reopenclass();

Produzione

Esegui il server ember e riceverai il seguente output: