![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
|
|||||
|
МЕГАФЛЭШЕР
Регистрация: May 1999
Адрес: Россия, Москва
Сообщений: 1,181
|
one.new_param="one_param";
two.new_param="two_param"; да создается новое поле, локально относительно объекта, one, two если вызвать delete one.new_param, то поле new_param в объекте one будет удалено, и при вызове one.new_param, будет получено содержание поля прототипа. Прототип, по умолчанию, это новосозданный объект, и он является субкласом объекта Object.prototype, можно предположить что для создании прототипа используется конструктор Object. Но это не однозначно. чтобы убрать наследование создаваемого класса от верхнего Object. Нужно присвоить прототипу прототипа, неопределенное значение. constructor_one.prototyoe.__proto__ = undefined; теперь вернусь о поле пртототипа (суперкласса) и создоваемого объекта (субкласса) если в объекте субклассе есть вызываемое поле (в нашем примере "new_param") то вызывается значение данного поля, если такого поля нет, то вызываетя суперкласс (прототип) и вызывается одноименно поле, и так далее, вверх и вверх по иерархии, пока у объекта не будет прототипа. Если на одном из этапов, цепочки наследования создать локальное поле, то можно управлять наследованием... ну в общем все достаточно просто. |
![]() |
Часовой пояс GMT +4, время: 16:53. |
|
|
« Предыдущая тема | Следующая тема » |
|
|