Maison interface Web js tutoriel JavaScript中创建对象和继承示例解读_javascript技巧

JavaScript中创建对象和继承示例解读_javascript技巧

May 16, 2016 pm 05:00 PM
创建对象 继承

对象创建:

当一个函数对象被创建时候,Function构造器产生的函数对象会运行类似这样的代码:

复制代码 代码如下:

this.prototype={constructor:this};

假设函数F
F用new方式构造对象时,对象的constructor被设置成这个F.prototype.constructor
如果函数在创建对象前修改了函数的prototype,会影响创建出来对象的construtor属性

如:
复制代码 代码如下:

function F(){};
F.prototype={constructor:'1111'};
var o=new F();//o.constructor===‘1111' true

继承原理:

JavaScript中的继承是使用原型链的机制,每个函数的实例都共享构造函数prototype属性中定义的数据,要使一个类继承另一个,需要把父函数实例赋值到子函数的prototype属性。并且在每次new实例对象时,对象的私有属性__proto__会被自动连接到构造函数的prototype。

instanceof就是查找实例对象的私有prototype属性链来确定是否是指定对象的实例

具体实例:
复制代码 代码如下:

//instanceof实现
function Myinstanceof(obj,type)
{
var proto=obj.__proto__;
while(proto)
{
if(proto ===type.prototype)break;
proto=proto.__proto__;
}
return proto!=null;
}


function View(){}
function TreeView(){}
TreeView.prototype=new View();//TreeView.prototype.__proto__=TreeView.prototype 自动完成
TreeView.prototype.constructor=TreeView;//修正constructor
var view=new TreeView();//view.__proto__=TreeView.prototype 自动完成
alert(view instanceof View); //true 查找到view.__proto__.__proto__时找到
alert(view instanceof TreeView); //true 查找到view.__proto__时找到
alert(Myinstanceof(view,View)); //true
alert(Myinstanceof(view,TreeView)); //true
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)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
2 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)

Comment résoudre le problème selon lequel les composants ActiveX ne peuvent pas créer d'objets Comment résoudre le problème selon lequel les composants ActiveX ne peuvent pas créer d'objets Jan 24, 2024 pm 02:48 PM

Solution : 1. Vérifiez l'orthographe et le chemin ; 2. Ajoutez une référence au composant ; 3. Vérifiez le registre ; 4. Exécutez en tant qu'administrateur ; 5. Mettez à jour ou réparez Office ; 7. Utilisez d'autres versions des composants ; messages d'erreur ; 9. Trouver d'autres solutions. Introduction détaillée : 1. Vérifiez l'orthographe et le chemin : assurez-vous qu'il n'y a pas d'erreurs d'orthographe dans le nom et le chemin de l'objet et que le fichier existe dans le chemin spécifié. 2. Ajoutez des références aux composants, etc.

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.

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.

Résoudre l'erreur PHP : problèmes rencontrés lors de l'héritage de la classe parent Résoudre l'erreur PHP : problèmes rencontrés lors de l'héritage de la classe parent Aug 17, 2023 pm 01:33 PM

Résolution des erreurs PHP : problèmes rencontrés lors de l'héritage des classes parentes En PHP, l'héritage est une fonctionnalité importante de la programmation orientée objet. Grâce à l'héritage, nous pouvons réutiliser le code existant, l'étendre et l'améliorer sans modifier le code d'origine. Bien que l'héritage soit largement utilisé dans le développement, vous pouvez parfois rencontrer des problèmes d'erreur lors de l'héritage d'une classe parent. Cet article se concentrera sur la résolution des problèmes courants rencontrés lors de l'héritage d'une classe parent et fournira des exemples de code correspondants. Question 1 : la classe parent est introuvable pendant le processus d'héritage de la classe parent, si le système ne le fait pas.

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.

Calculer les intérêts sur les dépôts à terme (FD) et les dépôts à terme (RD) à l'aide du programme Java hérité Calculer les intérêts sur les dépôts à terme (FD) et les dépôts à terme (RD) à l'aide du programme Java hérité Aug 20, 2023 pm 10:49 PM

L'héritage est un concept qui nous permet d'accéder aux propriétés et au comportement d'une classe à partir d'une autre classe. La classe qui hérite des méthodes et des variables membres est appelée une superclasse ou classe parent, et la classe qui hérite de ces méthodes et variables membres est appelée une sous-classe ou une sous-classe. En Java, nous utilisons le mot-clé "extends" pour hériter d'une classe. Dans cet article, nous discuterons d'un programme Java permettant de calculer les intérêts sur les dépôts à terme et les dépôts à terme en utilisant l'héritage. Tout d'abord, créez ces quatre fichiers Java - Acnt.java - dans l'IDE de votre machine locale. Ce fichier contiendra une classe abstraite « Acnt » qui est utilisée pour stocker les détails du compte tels que le taux d'intérêt et le montant. Il aura également une méthode abstraite 'calcIntrst' avec le paramètre 'amnt' pour calculer

Comment utiliser le polymorphisme et l'héritage en PHP pour gérer les types de données Comment utiliser le polymorphisme et l'héritage en PHP pour gérer les types de données Jul 15, 2023 pm 07:41 PM

Comment utiliser le polymorphisme et l'héritage pour gérer les types de données en PHP Introduction : En PHP, le polymorphisme et l'héritage sont deux concepts importants de programmation orientée objet (POO). En utilisant le polymorphisme et l'héritage, nous pouvons gérer différents types de données de manière plus flexible. Cet article présentera comment utiliser le polymorphisme et l'héritage pour gérer les types de données en PHP et montrera leur application pratique à travers des exemples de code. 1. Le concept de base de l'héritage L'héritage est un concept important dans la programmation orientée objet. Il nous permet de créer une classe pouvant hériter des propriétés et des méthodes de la classe parent.

Technologie d'emballage et application en PHP Technologie d'emballage et application en PHP Oct 12, 2023 pm 01:43 PM

La technologie d'encapsulation et l'encapsulation d'applications en PHP sont un concept important dans la programmation orientée objet. Elle fait référence à l'encapsulation de données et d'opérations sur les données afin de fournir une interface d'accès unifiée aux programmes externes. En PHP, l'encapsulation peut être réalisée via des modificateurs de contrôle d'accès et des définitions de classe. Cet article présentera la technologie d'encapsulation dans PHP et ses scénarios d'application, et fournira quelques exemples de code spécifiques. 1. Modificateurs de contrôle d'accès encapsulés En PHP, l'encapsulation est principalement réalisée via des modificateurs de contrôle d'accès. PHP fournit trois modificateurs de contrôle d'accès,

See all articles