#javascript
var object1 = { property: "property1" }; object1.__proto__.property = "property2"; console.log(object1.property); //property1 Почему object1 не наследует свойство своего прототипа?
Ответы
Ответ 1
Ещё как наследует: var object1 = { property: "property1" }; object1.__proto__.property = "property2"; console.log(object1.property); //property1 delete object1.property; console.log(object1.property); //property2 Так и работает прототипное наследование - если свойства нет в объекте, оно ищется в свойствах прототипа, и так далее, пока не найдём или не кончится цепочка прототипов.Ответ 2
Объекты в JavaScript — динамические "контейнеры", наполненные свойствами (называемыми собственными свойствами). Каждый объект содержит ссылку на свой объект-прототип. При попытке получить доступ к какому-либо свойству объекта, свойство вначале ищется в самом объекте, затем в прототипе объекта, после чего в прототипе прототипа, и так далее. Поиск ведется до тех пор, пока не найдено свойство с совпадающим именем или не достигнут конец цепочки прототипов.
Комментариев нет:
Отправить комментарий