2 votes

Utiliser $.extend() pour l'héritage prototypique ?

C'est peut-être une question saugrenue, mais quelque chose comme.. :

var MyPrototypeObject {
    prop: 0;
};    
var ob1 = Object.create(MyPrototypeObject);
var ob2 = { 
    meth: function() { 
        this.prop = 5; // update prop 
        return this.prop;
    }
};

Objet.créer clone le prototype et $.extend est utilisé pour ajouter des méthodes supplémentaires à ob1 donde this.prop points de retour au prototype ? Quelle est la meilleure façon d'ajouter de nouvelles méthodes ?

$.extend(ob1, ob2);

En rapport : Surcharger les méthodes avec l'héritage prototypique .

1voto

Raynos Points 82706

pd-style est similaire et recommande

var SomeProto = {
    prop: 0;
};    

var ob1 = extend(Object.create(SomeProto), { 
    meth: function meth() { 
        return (this.prop = 5); // update prop 
    }
});

Il s'agit d'un moyen efficace de gérer l'OO en JavaScript. Notez que $.extend est une implémentation merdique pour faire cela parce qu'il a une fonction isPlainObject vérifier qui renvoie false pour les objets qui ont des prototypes

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