Quelle est la différence entre l'initialisation et de constructeur sur une dorsale modèle

Quelle est la différence entre l'initialisation et de constructeur sur une dorsale modèle.

Lorsque je souhaite une épine dorsale modèle (ParentModel) j'utilise la méthode initialize est de définir toutes les propriétés par défaut. Mais chaque fois que je créer un Modèle basé sur la ParentModel je utiliser le constructeur pour exécuter tout intial de la fonctionnalité. Je le fais parce que cela fonctionne, mais quelqu'un au travail m'a demandé pourquoi j'utilise à la fois d'initialisation et de constructeur et je n'ai pas eu une bonne réponse en dehors de cela fonctionne. Je pourrais passer du temps à la lecture, bien que le code source pour comprendre, mais il semble beaucoup plus facile à poser ici et obtenir la bonne réponse.

var ParentModel = Backbone.Model.extend({
  initialize : function() {
    //code here
  },
});


var Model = ParentModel.extend({
  constructor : function (options) {
    Backbone.Model.prototype.constructor.call(this, options);
    //code here
   },
  • Sachez que, tout comme votre constructor() appelle la base constructor(), votre remplacement de initialize() devraient commencer (au moins dans le cas où vous êtes en utilisant ce modèle, jusqu'à peut-être déjà un modèle étendu) avec <base>.initialize.apply(this, arguments);, afin de permettre à toute la base définie par initialize() à exécuter en premier. (Cela m'a pris dans JointJS, qui dispose déjà de son propre initialize() défini un certain nombre de ses propres modèles dérivés.)
InformationsquelleAutor screenm0nkey | 2012-04-12