Понимание функции Object.create JS - PullRequest
0 голосов
/ 20 января 2019

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

var person1 = {
name:"ABCD"
}

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

var person2 = Object.create(person1)

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

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

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

1 Ответ

0 голосов
/ 20 января 2019

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

enter image description here

При вводе кода в сценарии (не в консоли), хотя вы можете использовать __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);
...