Ok, tengo esto funcionando:
const personProto2 = { calAge() { console.log(2021 - this.birthday); }, }; const rein = Object.create(personProto2); rein.name = "Rein"; rein.birthday = 1945; rein.calAge();Pero si hago esto:
const Person = function (name, birthday) { this.name = name; this.birthday = birthday; }; Person.prototype.calAge = function () { console.log(2021 - this.birthday); }; const rein = Object.create(Person); rein.name = "Rein"; rein.birthday = 1945; rein.prototype.calAge();no funciona Pero una función es también un objeto. Y un objeto tiene también un prototipo.
Entonces, ¿por qué el segundo ejemplo no funciona?
Creo que quiso decir usar new al crear un objeto JavaScript simple y en blanco.
El operador new le permite crear una instancia de un tipo de objeto definido por el usuario o de uno de los tipos de objetos integrados que tiene una función de constructor. ahora, puede llamar al método calAge .
function Person(name, birthday) { this.name = name; this.birthday = birthday; }; Person.prototype.calAge = function () { console.log(2021 - this.birthday); }; const rein = new Person("Rein", 1945); rein.calAge();