Avantages du prototype par rapport aux méthodes définies par le constructeur
Lors de la définition des méthodes en JavaScript, les développeurs peuvent choisir entre les implémenter en tant que méthodes prototypes ou déclarer directement dans le constructeur. Les deux approches ont leurs avantages :
Méthodes définies par prototype
Exemple :
function Class() {} Class.prototype.calc = function (a, b) { return a + b; } // Two instances share the same calc() method var ins1 = new Class(), ins2 = new Class(); console.log(ins1.calc(1,1), ins2.calc(1,1)); // Outputs 2, 2 // Updating the prototype method affects both instances Class.prototype.calc = function() { return Array.prototype.slice.apply(arguments).reduce((a, b) => a + b); } console.log(ins1.calc(1,1,1), ins2.calc(1,1,1)); // Outputs 3, 3
Cependant, les méthodes prototypes ne peuvent pas accéder aux variables privées définies à l'intérieur du constructeur.
Méthodes définies par le constructeur
Fonction vs. Déclaration de variable pour "Class"
Concernant le choix entre l'utilisation de littéraux de fonction (par exemple, var Class = function () {}) ou des déclarations de fonction (par exemple, function Class () {}), ce dernier est préféré car il permet de "lever" le nom de la fonction en haut de la portée, évitant ainsi les erreurs potentielles causées par l'appel de la fonction avant qu'elle n'ait été définie.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!