Maison interface Web js tutoriel Analyse des exemples d'utilisation de l'héritage de chaîne de prototypes Javascript_Compétences Javascript

Analyse des exemples d'utilisation de l'héritage de chaîne de prototypes Javascript_Compétences Javascript

May 16, 2016 pm 04:17 PM
javascript 原型链 用法 继承

Cet article analyse l'utilisation de l'héritage de chaîne de prototypes JavaScript avec des exemples. Partagez-le avec tout le monde pour votre référence. L'analyse spécifique est la suivante :

Copier le code Le code est le suivant :
function Shape(){
this.name = 'forme';
this.toString = function(){
Renvoyez ce.nom ;
}
}

function TwoDShape(){
this.name = 'Forme 2D';
}
function Triangle(côté,hauteur){
this.name = 'Triangle';
this.side = côté;
this.hauteur = hauteur
this.getArea = function(){
Renvoie this.side*this.height/2; };
}

/* héritage */
TwoDShape.prototype = new Shape();
Triangle.prototype = new TwoDShape();
Lorsque nous réécrivons complètement la propriété prototype d'un objet, cela aura parfois un certain impact négatif sur la propriété constructeur de l'objet.

Par conséquent, après avoir terminé les paramètres de relation d'héritage pertinents, c'est une très bonne habitude de réinitialiser les attributs const de ces objets en conséquence. Comme indiqué ci-dessous :

Copier le code Le code est le suivant :
TwoDShape.prototype.constructor = TwoDShape
Triangle.prototype.constructor = Triangle;
Réécrit :


Copier le code Le code est le suivant :
function Shape(){}

Shape.prototype.name = 'forme';
Shape.prototype.toString = function(){
renvoie ce.nom ;
}

fonction TwoDShape(){}

TwoDShape.prototype = new Shape();
TwoDShape.prototype.constructor = TwoDShape;

TwoDShape.prototype.name = 'forme 2D';

function Triangle(côté,hauteur){
this.side = côté;
this.hauteur = hauteur
}

Triangle.prototype = nouveau TwoDShape ;
Triangle.prototype.constructor = Triangle

Triangle.prototype.name = 'Triangle';
Triangle.prototype.getArea = function(){
retourner this.side*this.height/2
>
Réécrire (passer par référence au lieu de valeur) :


Copier le code Le code est le suivant :
function Shape(){}

Shape.prototype.name = 'forme';
Shape.prototype.toString = function(){
renvoie ce.nom ;
}

fonction TwoDShape(){}

TwoDShape.prototype = Shape.prototype
TwoDShape.prototype.constructor = TwoDShape;

TwoDShape.prototype.name = 'forme 2D';

function Triangle(côté,hauteur){
this.side = côté;
this.hauteur = hauteur
}

Triangle.prototype = TwoDShape.prototype
Triangle.prototype.constructor = Triangle

Triangle.prototype.name = 'Triangle';
Triangle.prototype.getArea = function(){
retourner this.side*this.height/2
>
Bien qu'elle améliore l'efficacité, cette méthode a un effet secondaire. Parce qu'elle est passée par référence au lieu de valeur, la valeur du nom dans « l'objet parent » est affectée.

L'objet enfant et l'objet parent pointent vers le même objet. Ainsi, une fois que l'objet enfant aura modifié son prototype, l'objet parent sera également modifié immédiatement.

Réécrivez à nouveau (en utilisant le constructeur temporaire) :


Copier le code Le code est le suivant :
fonction Forme(){}
Shape.prototype.name = 'forme';
Shape.prototype.toString = function(){
renvoie ce.nom ;
}
fonction TwoDShape(){}
var F = fonction(){}
F.prototype = Forme.prototype
TwoDShape.prototype = new F();
TwoDShape.prototype.constructor = TwoDShape;
TwoDShape.prototype.name = 'forme 2D';
function Triangle(côté,hauteur){
this.side = côté;
this.hauteur = hauteur
}
F.prototype = TwoDShape.prototype
Triangle.prototype = new F();
Triangle.prototype.constructor = Triangle
Triangle.prototype.name = 'Triangle';
Triangle.prototype.getArea = function(){
retourner this.side*this.height/2
>

Bien qu'elle améliore l'efficacité, cette méthode a un effet secondaire. Parce qu'elle est passée par référence au lieu de valeur, la valeur du nom dans « l'objet parent » est affectée.

L'objet enfant et l'objet parent pointent vers le même objet. Ainsi, une fois l'objet enfant modifié en alignant le prototype, l'objet parent sera également modifié immédiatement.

J'espère que cet article sera utile à la conception de la programmation JavaScript de chacun.

Déclaration de ce site Web
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Explication détaillée de l'héritage des fonctions C++ : Comment utiliser le « pointeur de classe de base » et le « pointeur de classe dérivé » dans l'héritage ? Explication détaillée de l'héritage des fonctions C++ : Comment utiliser le « pointeur de classe de base » et le « pointeur de classe dérivé » dans l'héritage ? May 01, 2024 pm 10:27 PM

Dans l'héritage de fonction, utilisez le « pointeur de classe de base » et le « pointeur de classe dérivée » pour comprendre le mécanisme d'héritage : lorsque le pointeur de classe de base pointe vers l'objet de classe dérivé, une transformation ascendante est effectuée et seuls les membres de la classe de base sont accessibles. Lorsqu’un pointeur de classe dérivée pointe vers un objet de classe de base, une conversion vers le bas est effectuée (dangereuse) et doit être utilisée avec prudence.

Utilisation de la fonction WPSdatedif Utilisation de la fonction WPSdatedif Feb 20, 2024 pm 10:27 PM

WPS est une suite logicielle bureautique couramment utilisée et la fonction de table WPS est largement utilisée pour le traitement des données et les calculs. Dans le tableau WPS, il existe une fonction très utile, la fonction DATEDIF, qui permet de calculer le décalage horaire entre deux dates. La fonction DATEDIF est l'abréviation du mot anglais DateDifference. Sa syntaxe est la suivante : DATEDIF(start_date,end_date,unit) où start_date représente la date de début.

Explication détaillée et introduction à l'utilisation de la fonction MySQL ISNULL Explication détaillée et introduction à l'utilisation de la fonction MySQL ISNULL Mar 01, 2024 pm 05:24 PM

La fonction ISNULL() dans MySQL est une fonction utilisée pour déterminer si une expression ou une colonne spécifiée est NULL. Il renvoie une valeur booléenne, 1 si l'expression est NULL, 0 sinon. La fonction ISNULL() peut être utilisée dans l'instruction SELECT ou pour un jugement conditionnel dans la clause WHERE. 1. La syntaxe de base de la fonction ISNULL() : ISNULL(expression) où expression est l'expression permettant de déterminer si elle est NULL ou

Explication détaillée de l'héritage des fonctions C++ : Comment déboguer les erreurs d'héritage ? Explication détaillée de l'héritage des fonctions C++ : Comment déboguer les erreurs d'héritage ? May 02, 2024 am 09:54 AM

Conseils de débogage des erreurs d’héritage : assurez-vous que les relations d’héritage sont correctes. Utilisez le débogueur pour parcourir le code et examiner les valeurs des variables. Assurez-vous d'utiliser correctement le modificateur virtuel. Examinez le problème des diamants d'héritage causé par l'héritage caché. Recherchez les fonctions virtuelles pures non implémentées dans les classes abstraites.

Comment l'héritage et le polymorphisme affectent-ils le couplage de classes en C++ ? Comment l'héritage et le polymorphisme affectent-ils le couplage de classes en C++ ? Jun 05, 2024 pm 02:33 PM

L'héritage et le polymorphisme affectent le couplage des classes : l'héritage augmente le couplage car la classe dérivée dépend de la classe de base. Le polymorphisme réduit le couplage car les objets peuvent répondre aux messages de manière cohérente via des fonctions virtuelles et des pointeurs de classe de base. Les meilleures pratiques incluent l'utilisation de l'héritage avec parcimonie, la définition d'interfaces publiques, l'évitement de l'ajout de données membres aux classes de base et le découplage des classes via l'injection de dépendances. Un exemple pratique montrant comment utiliser le polymorphisme et l'injection de dépendances pour réduire le couplage dans une application de compte bancaire.

Utilisez CSS Transform pour transformer des éléments Utilisez CSS Transform pour transformer des éléments Feb 24, 2024 am 10:09 AM

Utilisation de Transform en CSS La propriété Transform de CSS est un outil très puissant qui peut effectuer des opérations telles que la traduction, la rotation, la mise à l'échelle et l'inclinaison des éléments HTML. Cela peut changer radicalement l’apparence des éléments et rendre les pages Web plus créatives et dynamiques. Dans cet article, nous présenterons en détail les différentes utilisations de Transform et fournirons des exemples de code spécifiques. 1. Traduire (Traduire) Traduire fait référence au déplacement d'un élément sur une distance spécifiée le long de l'axe x et de l'axe y. Sa syntaxe est la suivante : tran

Explication détaillée de l'héritage des fonctions C++ : Comment comprendre la relation « est-un » et « a-un » dans l'héritage ? Explication détaillée de l'héritage des fonctions C++ : Comment comprendre la relation « est-un » et « a-un » dans l'héritage ? May 02, 2024 am 08:18 AM

Explication détaillée de l'héritage de fonction C++ : Maîtriser la relation entre "is-a" et "has-a" Qu'est-ce que l'héritage de fonction ? L'héritage de fonction est une technique en C++ qui associe des méthodes définies dans une classe dérivée à des méthodes définies dans une classe de base. Il permet aux classes dérivées d'accéder et de remplacer les méthodes de la classe de base, étendant ainsi les fonctionnalités de la classe de base. Relations « est-un » et « a-un » Dans l'héritage de fonctions, la relation « est-un » signifie que la classe dérivée est un sous-type de la classe de base, c'est-à-dire que la classe dérivée « hérite » des caractéristiques et du comportement de la classe de base. La relation « possède un » signifie que la classe dérivée contient une référence ou un pointeur vers l'objet de classe de base, c'est-à-dire que la classe dérivée « possède » l'objet de classe de base. SyntaxeVoici la syntaxe permettant d'implémenter l'héritage de fonction : classDerivedClass:pu

Utilisation correcte de la requête POST en PHP Utilisation correcte de la requête POST en PHP Mar 27, 2024 pm 03:15 PM

L'utilisation de requêtes POST en PHP est une opération courante dans le développement de sites Web. Les données peuvent être envoyées au serveur via des requêtes POST, telles que les données de formulaire, les informations utilisateur, etc. Une utilisation appropriée des requêtes POST peut garantir la sécurité et l'exactitude des données. Ce qui suit présente l'utilisation correcte des requêtes POST en PHP et fournit des exemples de code spécifiques. 1. Principes de base des requêtes POST en PHP En PHP, les données soumises via la méthode POST peuvent être obtenues en utilisant la variable globale $_POST. La méthode POST convertit le numéro du formulaire en

See all articles