Maison interface Web js tutoriel Quelle est la propriété du prototype javascript ? et les trois étapes pour instancier un objet

Quelle est la propriété du prototype javascript ? et les trois étapes pour instancier un objet

Jul 20, 2017 pm 03:42 PM
javascript qu'est-ce que

Toutes les fonctions JS ont un attribut prototype, qui fait référence à un objet, l'objet prototype, également appelé prototype. Cette fonction comprend des constructeurs et des fonctions ordinaires. Nous parlons davantage du prototype du constructeur, mais on ne peut nier que les fonctions ordinaires ont aussi des prototypes. Par exemple, des fonctions ordinaires :

function F(){ 
  alert(F.prototype instanceof Object) //true; 
}
Copier après la connexion

Constructeur, c'est-à-dire construire des objets. Tout d’abord, comprenons le processus d’instanciation d’un objet via le constructeur.

function A(x){ 
  this.x=x; 
} 
var obj=new A(1);
Copier après la connexion

Il y a trois étapes pour instancier l'objet obj :
1. Créez l'objet obj : obj=new Object(); >2. Le __proto__ interne d'obj pointe vers le prototype de la fonction A qui l'a construit. En même temps, obj.constructor===A.prototype.constructor (cela est toujours vrai, même si A.prototype ne pointe plus vers le __proto__ interne de obj. original Un prototype, c'est-à-dire : L'attribut constructeur de l'objet instance de la classe pointe toujours vers le prototype.constructor du "constructeur"), de sorte que obj.constructor.prototype pointe vers A.prototype (obj.constructor. prototype===A.prototype, lorsque A.prototype change n'est pas vrai, comme nous le verrons ci-dessous). obj.constructor.prototype et le _proto_ interne sont deux choses différentes. _proto_ est utilisé lors de l'instanciation d'un objet. Obj n'a pas d'attribut de prototype, mais il a un __proto__ interne. Vous pouvez utiliser __proto__ pour obtenir les attributs de prototype sur la chaîne de prototypes. . et les méthodes prototypes, FireFox expose __proto__, qui peut être alerté dans FireFox (obj.__proto__) ;
3 Utilisez obj comme ceci pour appeler le constructeur A pour définir les membres (c'est-à-dire les propriétés de l'objet et les méthodes de l'objet) et initialisé. .

Lorsque ces trois étapes sont terminées, l'objet obj n'a aucun lien avec le constructeur A. À ce stade, même si le constructeur A ajoute des membres, cela n'affectera plus l'objet obj instancié. À ce stade, l'objet obj a l'attribut x et tous les membres de l'objet prototype du constructeur A. Bien entendu, l'objet prototype n'a aucun membre pour le moment.

L'objet prototype est initialement vide, c'est-à-dire qu'il n'a pas de membre (c'est-à-dire les propriétés du prototype et les méthodes du prototype). Vous pouvez vérifier le nombre de membres d’un objet prototype en utilisant la méthode suivante.


Cependant, une fois les attributs du prototype ou les méthodes du prototype définis, tous les objets instanciés via le constructeur héritent de ces attributs du prototype et des méthodes du prototype, ce qui se fait via la _proto _Chain interne.

var num=0; 
for(o in A.prototype) { 
  alert(o);//alert出原型属性名字 
  num++; 
} 
alert("member: " + num);//alert出原型所有成员个数。
Copier après la connexion
Ensuite, tous les objets de A ont une méthode say. La méthode say de cet objet prototype est la seule copie partagée par tout le monde, au lieu que chaque objet ait une copie de la méthode say.

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 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

Article chaud

Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Article chaud

Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Tags d'article chaud

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)

Quel type de processus est ccsvchst.exe ? Quel type de processus est ccsvchst.exe ? Feb 19, 2024 pm 11:33 PM

Quel type de processus est ccsvchst.exe ?

Comment mettre en œuvre un système de reconnaissance vocale en ligne à l'aide de WebSocket et JavaScript Comment mettre en œuvre un système de reconnaissance vocale en ligne à l'aide de WebSocket et JavaScript Dec 17, 2023 pm 02:54 PM

Comment mettre en œuvre un système de reconnaissance vocale en ligne à l'aide de WebSocket et JavaScript

WebSocket et JavaScript : technologies clés pour mettre en œuvre des systèmes de surveillance en temps réel WebSocket et JavaScript : technologies clés pour mettre en œuvre des systèmes de surveillance en temps réel Dec 17, 2023 pm 05:30 PM

WebSocket et JavaScript : technologies clés pour mettre en œuvre des systèmes de surveillance en temps réel

Comment mettre en œuvre un système de réservation en ligne à l'aide de WebSocket et JavaScript Comment mettre en œuvre un système de réservation en ligne à l'aide de WebSocket et JavaScript Dec 17, 2023 am 09:39 AM

Comment mettre en œuvre un système de réservation en ligne à l'aide de WebSocket et JavaScript

Comment utiliser JavaScript et WebSocket pour mettre en œuvre un système de commande en ligne en temps réel Comment utiliser JavaScript et WebSocket pour mettre en œuvre un système de commande en ligne en temps réel Dec 17, 2023 pm 12:09 PM

Comment utiliser JavaScript et WebSocket pour mettre en œuvre un système de commande en ligne en temps réel

Tutoriel JavaScript simple : Comment obtenir le code d'état HTTP Tutoriel JavaScript simple : Comment obtenir le code d'état HTTP Jan 05, 2024 pm 06:08 PM

Tutoriel JavaScript simple : Comment obtenir le code d'état HTTP

JavaScript et WebSocket : créer un système efficace de prévisions météorologiques en temps réel JavaScript et WebSocket : créer un système efficace de prévisions météorologiques en temps réel Dec 17, 2023 pm 05:13 PM

JavaScript et WebSocket : créer un système efficace de prévisions météorologiques en temps réel

Qu'est-ce qu'un navigateur dual-core ? Qu'est-ce qu'un navigateur dual-core ? Feb 20, 2024 am 08:22 AM

Qu'est-ce qu'un navigateur dual-core ?

See all articles