Maison > Questions et réponses > le corps du texte
Comment comprendre la différence entre prototype et __proto__ ?
迷茫2017-06-30 10:01:49
Lorsque le constructeur accède au prototype, il est généralement accessible via prototype
Par exemple, nous ajoutons des méthodes au prototype
Person.prototype.getName = function() {}
Lorsque la nouvelle instance accède au prototype, dans certains navigateurs pris en charge
function Person() {}
var p1 = new Person();
p1.__proto__ === Person.prototype // true
Conclusion : prototype
是作为构造函数去访问原型,而__proto__
est utilisé comme constructeur pour accéder au prototype, et __proto__
est utilisé comme instance pour accéder au prototype. Lorsque leurs identités sont différentes, même lorsqu'une méthode appelle les deux en même temps, différents prototypes sont accessibles.
漂亮男人2017-06-30 10:01:49
Peut-être que vous pouvez également consulter ceux-ci :
/a/11...
https://developer.mozilla.org...
https://developer.mozilla.org...
某草草2017-06-30 10:01:49
prototype
是构造函数的一个属性,__proto__
是实例的一个属性。使用构造函数生成的实例的 __proto__
属性会指向构造函数 prototype
L'objet pointé par l'attribut.
Eh bien, c'est tout.
伊谢尔伦2017-06-30 10:01:49
En termes de fonction :
prototype détermine la valeur par défaut de proto lorsqu'un objet est défini à l'aide d'un constructeur ou d'une forme littérale
proto est la base de la recherche de chaîne de prototypes de moteur js
Le point clé est donc que lorsque vous souhaitez modifier la méthode de recherche de la chaîne de prototypes, vous pouvez modifier la méthode de recherche de chaîne de prototypes de tous les objets instanciés suivants en changeant le prototype du constructeur, et utiliser proto pour modifier la recherche de chaîne de prototypes d'un seul objet.