EmberJS - Classes e instâncias
Isso nada mais é do que atualizar a implementação da classe sem redefini-la e reabrir a classe especificando novas propriedades nela. Isso é possível usando os seguintes métodos -
reopen()- Adiciona propriedades e métodos às instâncias .
reopenClass()- Adiciona propriedades e métodos às classes. .
Exemplo
O exemplo a seguir usa os métodos mencionados acima e especifica as novas propriedades ou métodos nele -
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'));
}
Agora abra o arquivo app.js e adicione a seguinte linha no topo do arquivo -
import reopenclass from './reopenclass';
Onde, reopenclass é um nome do arquivo especificado como "reopenclass.js" e criado na pasta "app".
Em seguida, chame o "reopenclass" herdado na parte inferior, antes da exportação. Ele executa a função reopenclass que é criada no arquivo reopenclass.js -
reopenclass();
Resultado
Execute o servidor ember e você receberá a seguinte saída -