Comment accéder prototype d'objet en javascript?
Dans tous les articles, il est écrit que le JavaScript est un langage basé sur des prototypes, ce qui signifie que chaque objet a un prototype (ou, plus précisément, la chaîne de prototype).
Jusqu'à présent, j'ai essayé l'extrait de code suivant:
var F = function();
F.prototype.member1 = 1;
var object1 = new F();
console.log(object1.member1); //prints 1
Comment puis-je accéder à l'objet prototype de object1
? Est-il un navigateur neutre façon de le faire (je veux dire, en ne s'appuyant pas sur __proto__
propriété? Vu cette lien, mais peut-être qu'il y a de nouveaux développements depuis 2010) Si je ne peux pas, pourriez-vous partager, n'hésitez pas à la logique derrière le capot?
- l'objet1.constructeur.prototype
Vous devez vous connecter pour publier un commentaire.
Si vous connaissez le nom de
instance
fonction de classe, vous pouvez simplement accéder prototype que:Si vous n'avez pas:
1)
2) ou
3) ou
Pour la compatibilité, vous pouvez le placer dans votre code le fragment de code suivant (et d'utiliser toujours
Object.getPrototypeOf(instance)
de retour prototype):Mise à JOUR:
Selon l'ECMA-262, 6e Édition (juin 2015)
__proto__
propriété est normalisé comme fonctionnalité supplémentaire pour les navigateurs Web. Toutes les dernières éditions des meilleurs navigateurs supporte maintenant. Lire plus à propos de__proto__
:MDN:
de l'Objet.le prototype.__proto__
EDMA-262 6e Édition (juin 2015):
B. 2.2.1 Objet.le prototype.__proto__
__proto__
ne fonctionne pas dans tous les navigateurs__proto__
mais l'ensemble des trois méthodes ci-dessus ne fonctionne pas dans tous les navigateurs. Mais la compatibilité de code est basé sur l'ensemble de ces méthodes. De plus, pour les cinq principaux navigateurs (IE,FF,Chrome,Safari,Opera) toutes les dernières éditions des navigateurs disposent d'un soutien pourObject.getPrototypeOf()
, et la compatibilité du code des besoins que pour IE8 et plus.Il ressemble
va travailler pour cela, et est compatible avec les navigateurs modernes.
Voici les tableaux de compatibilité sur MDN