67 votes

L'accès parent de la classe de la colonne vertébrale

J'ai besoin d'appeler l' initialize méthode de la classe parente, à partir de l'intérieur de l'héritage MyModel-classe, au lieu de l'écraser comme je le fais aujourd'hui.

Comment pourrais-je faire cela?

Voici ce que mon code ressemble maintenant:

BaseModel = Backbone.Model.extend({
    initialize: function(attributes, options) {
        // Do parent stuff stuff
    }
});

MyModel = BaseModel.extend({
    initialize: function() {
        // Invoke BaseModel.initialize();
        // Continue doing specific stuff for this child-class.
    },
});

129voto

Yury Tarabanko Points 7414

Essayez

MyModel = BaseModel.extend({
    initialize: function() {
        BaseModel.prototype.initialize.apply(this, arguments);
        // Continue doing specific stuff for this child-class.
    },
});

51voto

Raynos Points 82706
MyModel = BaseModel.extend({
    initialize: function() {
        MyModel.__super__.initialize.apply(this, arguments);
        // Continue doing specific stuff for this child-class.
    },
});

11voto

rookieRailer Points 1295

Cela a fonctionné pour moi, quand j'ai essayé d'hériter parmi mes modèles:

MyModel.prototype.initialize.call(this, options);

Référencé d' http://documentcloud.github.com/backbone/#Model-extend

Merci.

5voto

wheresrhys Points 6087

Je pense qu'il pourrait être

MyModel = BaseModel.extend({
    initialize: function() {
        this.constructor.__super__.initialize.call(this);
        // Continue doing specific stuff for this child-class.
    },
});

4voto

ErichBSchulz Points 1058

cela semble être presque un double de Super de la colonne vertébrale, de sorte que vous voulez quelque chose comme ceci:

Backbone.Model.prototype.initialize.call(this);

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