Maison  >  Article  >  interface Web  >  qu'est-ce que Javascript Uber

qu'est-ce que Javascript Uber

藏色散人
藏色散人original
2021-11-01 15:31:481539parcourir

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.

qu'est-ce que Javascript Uber

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 JavaScript

"

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn