Si je crée un objet simple comme

var a = {foo: 1}; 

Pourquoi puis-je accéder à son prototype de cette façon ?

a.prototype

Je suis indéfini sur la console

0
afdi5 19 mars 2019 à 15:45

2 réponses

Meilleure réponse

Les fonctions ont une propriété prototype et non des objets normaux. La propriété prototype pointe vers un objet auquel les objets enfants créés avec new seront liés.

Les objets sont liés au prototype cependant. Cependant, ce n'est pas la même chose que le prototype propriété des fonctions Cette dénomination est un peu déroutante.

Par exemple:

var a = {foo: 1}; 

// the prototype of a
console.log(Object.getPrototypeOf(a))
// the same as __proto__
console.log(a.__proto__ === Object.getPrototypeOf(a))

// the .protoype property:
function Test(){}
// it's just an empty object unless you change it
console.log(Test.prototype)

// instance are prototype linked to this
let instance = new Test()
console.log(instance.__proto__ === Test.prototype)
0
Mark M 19 mars 2019 à 12:51

Vous pouvez trouver le prototype de l'objet de cette façon :

a.__proto__

obj.prototype peut être utilisé pour définir un nouveau prototype pour l'objet.

0
marsibarsi 19 mars 2019 à 12:50