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.
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.
Lorsque le constructeur accède au prototype, il est généralement accessible via
.prototype
Par exemple, nous ajoutons des méthodes au prototypeLorsque la nouvelle instance accède au prototype, dans certains navigateurs pris en charge
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.Chaque objet a
;__proto__
,而prototype
只有Function
aPeut-être que vous pouvez également consulter ceux-ci :
/a/11...
https://developer.mozilla.org...
https://developer.mozilla.org...
prototype
是构造函数的一个属性,__proto__
是实例的一个属性。使用构造函数生成的实例的__proto__
属性会指向构造函数prototype
L'objet pointé par l'attribut.Eh bien, c'est tout.
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.