Понимание функции 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);