66 votes

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
   },

88voto

Boyo Points 649

Constructor s'exécute avant de la Dorsale met en place la structure. initialize est appelée à l'intérieur de la structure de l' constructor fonction. Donc, fondamentalement, si vous avez besoin de développer quoi que ce soit avant de la Dorsale met en place la structure, l'utilisation constructor si vous avez besoin de développer quoi que ce soit après épine Dorsale met en place l'utilisation des structures en initialize.

à partir d' ici

30voto

Sudhir Jonathan Points 6841

constructor est la fonction qui épine Dorsale utilise pour se créer des modèles, des événements, et toutes sortes de d'autres de l'installation. Être très prudent quant à la substitution de ce, parce que si vous voulez éviter de Squelette de code à partir de l'exécution par substitution ou de l'ombre à la méthode, vous obtiendrez des erreurs étranges qui sont difficiles à déboguer.

initialize sur l'autre main est une fonction qui épine Dorsale des appels sur ses objets une fois que c'est fini avec son plomberie interne. Si vous ne faites pas tout ce qui est spécifiquement destiné à interférer avec la normale épine Dorsale de la fonctionnalité, il suffit d'utiliser initialiser.

Si vous êtes à l'aide de CoffeeScript, il pourrait être plus intuitive constructor. (C'est pour moi). Assurez-vous de toujours faire appel à super, cependant.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X