Maison > interface Web > js tutoriel > Introduction au prototype de chaîne de prototypes dans les compétences JavaScript_javascript

Introduction au prototype de chaîne de prototypes dans les compétences JavaScript_javascript

WBOY
Libérer: 2016-05-16 16:23:04
original
1477 Les gens l'ont consulté

L'héritage en JavaScript s'effectue via la chaîne de prototypes : chaque objet contient un autre objet comme prototype, et l'objet hérite des propriétés de ce prototype. Pour chaque objet, vous pouvez accéder à son objet prototype des trois manières suivantes :

1.__proto__. L'objet prototype d'un objet est accessible via son attribut __proto__. Cette propriété n'est prise en charge que dans Firefox, Safari et Chrome, pas dans IE et Opera.

2.Object.getPrototypeOf(). Vous pouvez transmettre l'objet en tant que paramètre à la méthode Object.getPrototypeOf(), et l'objet prototype de l'objet sera renvoyé après l'exécution. Cette méthode n'est prise en charge que dans la norme ECMAScript 5.

3.o.constructeur.prototype. Accédez à l'objet prototype en obtenant d'abord la fonction constructeur de l'objet, puis en accédant à la propriété prototype de la fonction constructeur. La condition préalable à l'utilisation de cette méthode est qu'il existe un attribut constructeur pointant vers le constructeur dans l'objet.

Pour déterminer s'il existe une relation de chaîne prototype entre deux objets, vous pouvez utiliser la méthode isPrototype() :


Copier le code Le code est le suivant :

varp = {x:1};
var o = Objet.create(p);
console.log(p.isPrototypeOf(o));//true


Pour tous les objets créés avec des littéraux, leurs objets prototypes sont Object.prototype (en tant qu'objet spécial, Object.prototype n'a pas d'objet prototype) :


Copier le code Le code est le suivant :

varx = {a:18, b:28};
console.log(x.__proto__);//Objet {}


Pour tous les objets créés avec l'opérateur new, leurs objets prototypes sont les attributs prototypes de la fonction constructeur :


Copier le code Le code est le suivant :

varx = {a:18, b:28};
fonction Test(c){
ceci.c = c;
>
Test.prototype = x;
var t = nouveau Test(38);
console.log(t);//Object {c=38, a=18, b=28}
console.log(t.__proto__);//Object {a=18, b=28}
console.log(t.__proto__.__proto__);//Object {}


Le processus d'utilisation de l'opérateur new pour créer des objets en JavaScript est le suivant :

1. Créez un nouvel objet vide.
2. Pointez l'attribut __proto__ de cet objet vers l'attribut prototype de la fonction constructeur.
3. Utilisez cet objet comme paramètre pour exécuter la fonction constructeur.

Du processus de création ci-dessus, on peut conclure que tous les objets construits à partir de la même fonction constructeur ont leurs attributs __proto__ (c'est-à-dire leurs objets prototypes) égaux, c'est-à-dire qu'il n'y a qu'un seul objet prototype :


Copier le code Le code est le suivant :

var t = nouveau Test(38);
var t2 = nouveau Test(68);
console.log(t === t2);//false
console.log(t.__proto__ === t2.__proto__);//true

Étiquettes associées:
source:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal