Страницы

Поиск по вопросам

суббота, 21 декабря 2019 г.

Почему объект не наследует свойство своего прототипа?

#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 — динамические "контейнеры", наполненные свойствами (называемыми собственными свойствами). Каждый объект содержит ссылку на свой объект-прототип. При попытке получить доступ к какому-либо свойству объекта, свойство вначале ищется в самом объекте, затем в прототипе объекта, после чего в прототипе прототипа, и так далее. Поиск ведется до тех пор, пока не найдено свойство с совпадающим именем или не достигнут конец цепочки прототипов.

Комментариев нет:

Отправить комментарий