Понимание функции Object.create JS

Я создал нормальный объект JS

var person1 = {
name:"ABCD"
}

А затем создал еще один объект person2 как

var person2 = Object.create(person1)

Теперь в консоли браузера, когда я печатаю

person1 - это дает мне определение объекта. Но когда я набираю person2 - печатается пустой объект (т. Е. {}), Хотя person2.name возвращает ABCD.

Любые мысли о том, что здесь происходит.

1 ответ

Решение

person2 пусто, поскольку вы никогда не присваиваете ни одному из его свойств; в консоли, вы должны расширить __proto__ свойство, чтобы добраться до прототипа объекта, чтобы увидеть, что он наследует.

При наборе кода в сценарии (не в консоли), хотя вы можете использовать __proto__ для доступа к прототипу:

var person1 = {
  name:"ABCD"
};
var person2 = Object.create(person1);

console.log(person2.__proto__ === person1);

это устарело, предпочтительнее использовать Object.getPrototypeOf:

var person1 = {
  name:"ABCD"
};
var person2 = Object.create(person1);

console.log(Object.getPrototypeOf(person2) === person1);

Другие вопросы по тегам