


Trois méthodes d'héritage et leurs avantages et inconvénients en js
L'éditeur suivant vous présentera une brève discussion des trois méthodes d'héritage en js et de leurs avantages et inconvénients. L'éditeur pense que c'est plutôt bien, alors je vais le partager avec vous maintenant et le donner comme référence. Suivons l'éditeur et jetons un œil
La première méthode est le prototype :
//父类 function person(){ this.hair = 'black'; this.eye = 'black'; this.skin = 'yellow'; this.view = function(){ return this.hair + ',' + this.eye + ',' + this.skin; } } //子类 function man(){ this.feature = ['beard','strong']; } man.prototype = new person(); var one = new man(); console.log(one.feature); //['beard','strong'] console.log(one.hair); //black console.log(one.eye); //black console.log(one.skin); //yellow console.log(one.view()); //black,black,yellow
Cette méthode est la plus simple. Il vous suffit d'attribuer la valeur d'attribut prototype de la sous-classe à une instance héritée, puis vous pouvez utiliser directement les méthodes de la classe héritée. .
Que signifie l'attribut prototype ? Le prototype est le prototype. Chaque objet (défini par la fonction) possède une propriété de prototype par défaut, qui est un type d'objet.
Et cet attribut par défaut est utilisé pour réaliser la recherche ascendante de la chaîne. Cela signifie que si un attribut d'un objet n'existe pas, l'attribut sera trouvé via l'objet auquel appartient l'attribut prototype. Que faire si le prototype est introuvable ?
js recherchera automatiquement l'objet auquel appartient l'attribut prototype du prototype, afin qu'il remonte l' index à travers le prototype jusqu'à ce que l'attribut soit trouvé ou que le prototype soit enfin vide (« undéfini »);
Par exemple, dans la méthode one.view() de l'exemple ci-dessus, js vérifiera d'abord s'il existe une méthode view() dans une instance. Parce qu'il n'y en a pas , il recherche l'attribut man.prototype et la valeur de prototype. C'est une instance de personne
L'instance a une méthode view(), donc l'appel est réussi.
La deuxième façon d'appliquer :
//父类 function person(){ this.hair = 'black'; this.eye = 'black'; this.skin = 'yellow'; this.view = function(){ return this.hair + ',' + this.eye + ',' + this.skin; } } //子类 function man(){ // person.apply(this,new Array()); person.apply(this,[]); this.feature = ['beard','strong']; } var one = new man(); console.log(one.feature); //['beard','strong'] console.log(one.hair); //black console.log(one.eye); //black console.log(one.skin); //yellow console.log(one.view()); //black,black,yellow
Remarque : si le paramètre d'application est vide, c'est-à-dire qu'aucun paramètre n'est transmis, passez new Array(), [] pour passer, null n'est pas valide.
La troisième méthode, call+prototype :
//父类 function person(){ this.hair = 'black'; this.eye = 'black'; this.skin = 'yellow'; this.view = function(){ return this.hair + ',' + this.eye + ',' + this.skin; } } //子类 function man(){ // person.apply(this,new Array()); person.call(this,[]); this.feature = ['beard','strong']; } man.prototype = new person(); var one = new man(); console.log(one.feature); //['beard','strong'] console.log(one.hair); //black console.log(one.eye); //black console.log(one.skin); //yellow console.log(one.view()); //black,black,yellow
Le mécanisme d'implémentation de la méthode d'appel nécessite un man.prototype = new supplémentaire personne(); Pourquoi ?
C'est parce que la méthode d'appel implémente uniquement le remplacement de méthode et ne copie pas les attributs de l'objet.
L'héritage de l'API Google Map utilise cette méthode.
La mise en œuvre des trois méthodes d'héritage est résumée ci-dessus. Mais chaque méthode a ses avantages et ses inconvénients.
Si la classe parent est comme ceci :
//父类 function person(hair,eye,skin){ this.hair = hair; this.eye = eye; this.skin = skin; this.view = function(){ return this.hair + ',' + this.eye + ',' + this.skin; } }
Comment la sous-classe doit-elle être conçue pour que l'homme de la sous-classe puisse transmettre des paramètres au parent lors de création de l'objet La méthode d'héritage de la classe personne et du prototype n'est pas applicable.
doit utiliser la méthode apply ou call :
//apply方式 //子类 function man(hair,eye,skin){ person.apply(this,[hair,eye,skin]); this.feature = ['beard','strong']; } //call方式 //子类 function man(hair,eye,skin){ person.call(this,hair,eye,skin); this.feature = ['beard','strong']; }
Mais il y a toujours des inconvénients à utiliser la méthode apply. En js, nous avons un opérateur très important qui est "instanceof". Cet opérateur est utilisé pour comparer si un objet est d'un certain type.
Pour cet exemple, en plus du type man, la seule instance doit également être du type personne. Cependant, après avoir hérité dans la méthode apply, on n'appartient pas au type personne, cela. c'est-à-dire que la valeur de (une instance de personne) est fausse.
Après tout cela, la meilleure méthode d'héritage est la méthode appel+prototype. Après cela, vous pouvez essayer si la valeur de (une instance de BaseClass) est vraie.
La troisième méthode d'héritage présente également des défauts : lors du sous-classement d'un nouvel objet, les paramètres requis par la classe parent doivent être transmis, et les attributs et méthodes dans la classe parent sera reproduite. La méthode d'héritage suivante est parfaite :
function Person(name){ this.name = name; } Person.prototype.getName = function() { return this.name; } function Chinese(name, nation) { Person.call(this, name); this.nation = nation; } //继承方法 function inherit(subClass, superClass) { function F() {} F.prototype = superClass.prototype; subClass.prototype = new F(); subClass.prototype.constructor = subClass.constructor; } inherit(Chinese, Person); Chinese.prototype.getNation = function() { return this.nation; }; var p = new Person('shijun'); var c = new Chinese("liyatang", "China"); console.log(p); // Person {name: "shijun", getName: function} console.log(c); // Chinese {name: "liyatang", nation: "China", constructor: function, getNation: function, getName: function} console.log(p.constructor); // function Person(name){} console.log(c.constructor); // function Chinese(){} console.log(c instanceof Chinese); // true console.log(c instanceof Person); // true
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!

Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

Comment utiliser WebSocket et JavaScript pour mettre en œuvre un système de reconnaissance vocale en ligne Introduction : Avec le développement continu de la technologie, la technologie de reconnaissance vocale est devenue une partie importante du domaine de l'intelligence artificielle. Le système de reconnaissance vocale en ligne basé sur WebSocket et JavaScript présente les caractéristiques d'une faible latence, d'un temps réel et d'une multiplateforme, et est devenu une solution largement utilisée. Cet article explique comment utiliser WebSocket et JavaScript pour implémenter un système de reconnaissance vocale en ligne.

WebSocket et JavaScript : technologies clés pour réaliser des systèmes de surveillance en temps réel Introduction : Avec le développement rapide de la technologie Internet, les systèmes de surveillance en temps réel ont été largement utilisés dans divers domaines. L'une des technologies clés pour réaliser une surveillance en temps réel est la combinaison de WebSocket et de JavaScript. Cet article présentera l'application de WebSocket et JavaScript dans les systèmes de surveillance en temps réel, donnera des exemples de code et expliquera leurs principes de mise en œuvre en détail. 1. Technologie WebSocket

Modèles : avantages et inconvénients Le modèle est une technique de programmation puissante qui vous permet de créer des blocs de code réutilisables. Il présente de nombreux avantages, mais aussi certains inconvénients. Avantages : Réutilisabilité du code : les modèles vous permettent de créer du code commun qui peut être réutilisé dans toute votre application, réduisant ainsi les efforts de duplication et de maintenance. Cohérence : les modèles garantissent que les extraits de code sont implémentés de la même manière à différents endroits, améliorant ainsi la cohérence et la lisibilité du code. Maintenabilité : les modifications apportées à un modèle sont reflétées simultanément dans tout le code qui l'utilise, simplifiant ainsi la maintenance et les mises à jour. Efficacité : la création de modèles permet d'économiser du temps et des efforts, car vous n'avez pas besoin d'écrire le même code encore et encore. Flexibilité : les modèles vous permettent de créer des blocs de code configurables qui peuvent être facilement adaptés aux différents besoins des applications. défaut

À l'ère de l'information d'aujourd'hui, les ordinateurs personnels jouent un rôle important en tant qu'outil indispensable dans notre vie quotidienne. En tant que logiciel de base des ordinateurs, le système d'exploitation affecte notre expérience d'utilisation et notre efficacité au travail. Sur le marché, le système d'exploitation Windows de Microsoft a toujours occupé une position dominante, mais les gens sont désormais confrontés au choix entre le dernier Windows 11 et l'ancien Windows 10. Pour les consommateurs ordinaires, lorsqu'ils choisissent un système d'exploitation, ils ne regardent pas seulement le numéro de version, mais comprennent également ses avantages et ses inconvénients.

JavaServlet est une classe Java utilisée pour créer des pages Web dynamiques et sert de pont entre le client et le serveur. Principe de fonctionnement : recevoir des requêtes, initialiser le Servlet, traiter les requêtes, générer des réponses et fermer le Servlet. Avantages : Portable, évolutif, sécurisé et facile à utiliser. Inconvénients : surcharge, couplage et gestion de l'état. Cas pratique : Créez un Servlet simple pour afficher le message "Bonjour, Servlet !"

Avantages et inconvénients de l'utilisation du chinois pour nommer les variables Java Dans la programmation Java, nous utilisons généralement l'anglais pour nommer des identifiants tels que des variables, des méthodes et des classes. Cependant, nous pouvons parfois également envisager d’utiliser le chinois comme élément d’identification. Cet article explorera les avantages et les inconvénients de l'utilisation de variables Java nommées en chinois et donnera quelques exemples de code spécifiques. Avantage 1 : améliorer la lisibilité du code. L'utilisation de variables Java nommées en chinois peut rendre le code plus facile à comprendre et à lire. Après tout, notre cerveau comprend et reconnaît le chinois plus naturellement et plus couramment que l’anglais. Pour les non-anglais

Le choix du framework PHP dépend des besoins du projet et des compétences du développeur : Laravel : riche en fonctionnalités et en communauté active, mais a une courbe d'apprentissage abrupte et des frais généraux élevés en termes de performances. CodeIgniter : léger et facile à étendre, mais a des fonctionnalités limitées et moins de documentation. Symfony : Communauté modulaire et forte, mais problèmes de performances complexes. ZendFramework : de niveau entreprise, stable et fiable, mais volumineux et coûteux en licence. Slim : micro-framework, rapide, mais avec des fonctionnalités limitées et une courbe d'apprentissage abrupte.

JavaScript et WebSocket : Construire un système efficace de prévisions météorologiques en temps réel Introduction : Aujourd'hui, la précision des prévisions météorologiques revêt une grande importance pour la vie quotidienne et la prise de décision. À mesure que la technologie évolue, nous pouvons fournir des prévisions météorologiques plus précises et plus fiables en obtenant des données météorologiques en temps réel. Dans cet article, nous apprendrons comment utiliser la technologie JavaScript et WebSocket pour créer un système efficace de prévisions météorologiques en temps réel. Cet article démontrera le processus de mise en œuvre à travers des exemples de code spécifiques. Nous
