EmberJS - Classes et instances

Il ne s'agit que de mettre à jour l'implémentation de la classe sans la redéfinir et de rouvrir la classe en y spécifiant de nouvelles propriétés. Ceci est possible en utilisant les méthodes suivantes -

  • reopen()- Il ajoute des propriétés et des méthodes aux instances .

  • reopenClass()- Il ajoute des propriétés et des méthodes aux classes. .

Exemple

L'exemple suivant utilise les méthodes mentionnées ci-dessus et spécifie les nouvelles propriétés ou méthodes qu'il contient -

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

Ouvrez maintenant le fichier app.js et ajoutez la ligne suivante en haut du fichier -

import reopenclass from './reopenclass';

Où, reopenclass est le nom du fichier spécifié comme "reopenclass.js" et créé dans le dossier "app".

Appelez ensuite la "reopenclass" héritée en bas, avant l'exportation. Il exécute la fonction reopenclass qui est créée dans le fichier reopenclass.js -

reopenclass();

Production

Exécutez le serveur de braises et vous recevrez la sortie suivante -