J'ai une fonction constructeur « Animaux », qui est l'espace de nommage d'autres fonctions de constructeur, « Crocodile » et « Monkey »:prototypal Les espaces de noms
var Monkey = function(Animals) {
this.Animals = Animals;
};
Monkey.prototype.feedMe = function() {
this.Animals.feed();
};
var Crocodile = function(Animals) {
this.Animals = Animals;
};
Crocodile.prototype.feedMe = function() {
this.Animals.feed();
};
var Animals = function(zoo) {
this.zoo = zoo;
};
Animals.prototype.feed = function() {
//feed the animal
};
Animals.prototype.Monkey = function() {
this.Animals = Animals.prototype;
};
Animals.prototype.Monkey.prototype = Monkey.prototype;
Animals.prototype.Crocodile = function() {
this.Animals = Animals.prototype;
};
Animals.prototype.Crocodile.prototype = Crocodile.prototype;
Avec l'intention que je devrais pouvoir faire ce qui suit:
var animals = new Animals("NY");
var monkey = new animals.Monkey();
monkey.feed();
Je reçois une erreur indiquant que monkey.feed() n'est pas une fonction. Je suppose que je fais quelque chose de mal avec la façon dont je suis héritant de la fonction de singe dans la fonction constructeur d'animaux, mais pour la vie de moi, je ne l'ai pas été en mesure de trouver la solution.
Quelle est la bonne méthode que je devrais utiliser ces espaces de nommage fonctions?
'Animals.prototype.feed() {// nourrir l'animal };' n » t une fonction - vous avez omis le mot-clé 'function'. – Graham
Désolé, c'était un oubli quand je copiais le code. Corrigée. –