Обычно, когда я использую Object.create()
, я передаю объект, который будет использоваться в прототипе. В настоящее время вы передаете функцию в качестве аргумента. Этот способ работает
const Person = function(name, age, city) {
this.name = name;
this.age = age;
this.city = city
}
const person2 = Object.create(new Person());
person2.name = "Will";
person2.age=41;
person2.city="San Jose";
Object.values(person2);
Вероятно, это как-то связано с тем, что функции имеют собственное свойство name
для самой функции? Но я не совсем уверен
Отредактировано:
Подтверждено, что это просто из-за свойства name, изменил имя на заголовок, чтобы избежать путаницы:
const Person = function(title, age, city) {
this.title = title;
this.age = age;
this.city = city
}
const person2 = Object.create(Person);
person2.title = "Will";
person2.age=41;
person2.city="San Jose";
Object.values(person2);
// ["Will", 41, "San Jose"]