javascript uber est une méthode utilisée au début de Javascript pour permettre à une certaine méthode d'appeler la classe parente. La méthode uber est similaire à la super de Java.
L'environnement d'exploitation de cet article : système Windows 7, version JavaScript 1.8.5, ordinateur DELL G3.
Qu'est-ce que javascript uber ?
Au début de JavaScript, la méthode uber est similaire à la super de Java, qui permet à une méthode d'appeler la méthode de la classe parent. Douglas Crockford a utilisé l'allemand « über », qui signifie quelque chose de similaire à super, pour éviter les conflits avec des mots réservés.
Cependant, Crockford a également déclaré que l'idée de super est très importante dans le modèle de conception classique, mais qu'elle semble inutile dans les modèles de conception de prototypes et de fonctions de JavaScript. Héritage classique en JavaScript Les langages orientés objet classiques ont généralement une syntaxe spéciale pour accéder à la classe parent (super classe), de sorte que les méthodes de la sous-classe peuvent utiliser les méthodes de la classe parent, et les méthodes de la sous-classe et du parent la classe porte le même nom. Dans le JavaScript moderne, il n'existe pas de syntaxe spéciale de ce type. Uber peut implémenter cette fonction, mais elle est plus lourde. Regardez l'exemple suivant :
// inheritance helper function extend(Child, Parent) { var F = function () {}; F.prototype = Parent.prototype; Child.prototype = new F(); Child.prototype.constructor = Child; Child.uber = Parent.prototype; } // define -> augment function Shape() {} Shape.prototype.name = 'Shape'; Shape.prototype.toString = function () { return this.constructor.uber ? this.constructor.uber.toString() + ', ' + this.name : this.name; }; // define -> inherit -> augment function TwoDShape() {} extend(TwoDShape, Shape); TwoDShape.prototype.name = '2D shape'; // define function Triangle(side, height) { this.side = side; this.height = height; } // inherit extend(Triangle, TwoDShape); // augment Triangle.prototype.name = 'Triangle'; Triangle.prototype.getArea = function () { return this.side * this.height / 2; };
Entrée dans la console :
var my = new Triangle(5, 10); my.toString();
Sortie : "Forme, forme 2D, Triangle"
Le niveau dérivé est : Shape -> TwoDShape -> Le code est encapsulé.
Le rôle du constructeur temporaire F() : lorsque les attributs de la sous-classe changent, les attributs de la classe parent ne sont pas modifiés.
Attribut uber : pointe vers le prototype de la classe parent.
Dans la méthode toString(), vérifiez si le prototype de la classe parent du constructeur existe. S'il existe, appelez sa méthode toString(), réalisant ainsi l'appel de la méthode de la classe parent dans la sous-classe.
Apprentissage recommandé : "
Tutoriel sur les bases de JavaScriptCe 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!