En train d'essayer d'ajouter $ 1 à mon Tween chaque fois que la méthode makeMoney est appelée, mais à la place, je reçois une erreur indiquant que la méthode makeMoney n'est pas une fonction. J'ai l'intuition que cela a à voir avec this
mais j'ai essayé de lier 'ceci' à la méthode makeMoney en vain. Cela semble vraiment être simple, mais je suis vide.Chaînage Prototypique en JavaScript
var Tween = function() {
Adolescent.call(this);
this.age = 12;
this.job = 'annoy';
this.allowance = 5;
};
Tween.prototype.makeMoney = function(){
return this.allowance ++;
}
Tween.prototype = Object.create(Adolescent.prototype);
Tween.prototype.constructor = Tween;
Intéressant. Je ne m'imaginerais pas que le placement serait important. Il est clair que c'est important mais conceptuellement pourquoi? – DLF85
Eh bien, c'est tout à fait logique. D'abord vous faites l'héritage et ensuite développez le prototype. 'Object.create' crée un nouvel objet, c'est la ligne de fond ici –
@ DLF85: Rappelez-vous que' prototype' est juste une propriété (celle que l'opérateur 'new' utilise, mais encore, juste une ancienne propriété ennuyeuse), et le La chose qui y est attachée n'est qu'un objet. Les fonctions ont un objet par défaut, que nous devons remplacer (pour configurer l'héritage). Donc, tout comme 'a = {}; a.foo = "bar"; a = {}; 'signifie que nous nous retrouvons avec un objet sur' a' sans propriété 'foo' ... –