JavaScript propose deux approches distinctes pour créer des objets personnalisés avec des propriétés et des méthodes : la méthode du prototype et la méthode de fermeture.
Cette méthode est plus native de JavaScript et exploite la propriété de recherche de prototype du constructeur fonctions.
function Shape(x, y) { this.x = x; this.y = y; } Shape.prototype.toString = function() { return 'Shape at ' + this.x + ', ' + this.y; }; function Circle(x, y, r) { Shape.call(this, x, y); // Invoke base constructor this.r = r; } Circle.prototype = new Shape(); // Set subclass prototype Circle.prototype.toString = function() { return 'Circular ' + Shape.prototype.toString.call(this) + ' with radius ' + this.r; };
Cette méthode évite complètement l'héritage prototypique, créant une nouvelle fermeture pour chaque instance.
function Shape(x, y) { var that = this; this.x = x; this.y = y; this.toString = function() { return 'Shape at ' + that.x + ', ' + that.y; }; } function Circle(x, y, r) { var that = this; Shape.call(this, x, y); // Invoke base constructor this.r = r; var _baseToString = this.toString; this.toString = function() { return 'Circular ' + _baseToString.call(that) + ' with radius ' + this.r; }; } var myCircle = Circle(); // Using `new` is optional here
Les deux méthodes présentent des avantages et des inconvénients.
Prototype Façon
Mode de fermeture
En fin de compte, le meilleur choix dépend des exigences et des préférences spécifiques du projet.
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!