...


Наследование через цепочку прототипов
    Наследование в JavaScript проводится через прототипы; конкретные экземпляры объекта "наследуют" программный код и данные, имеющиеся в прототипе конструктора. Но можно получить новый тип объекта из типа, который уже существует. Экземпляры нового типа наследуют все свойства их собственного типа вдобавок к свойствам, воплощенным в их "родителе".
    Например, с помощью "связывания" прототипов можно определить новый тип объекта, который наследует все возможности нашего объекта Robot:

function UltraRobot(extraFeature)
{
if (extraFeature)
this.feature = extraFeature;
}
UltraRobot.prototype = new Robot();
UltraRobot.prototype.feature = "Радар";

Единственным новым для нас действием в этом примере является назначение прототипу UltraRobot нового экземпляра объекта Robot. Поскольку поиск свойств выполняется через прототипы, объекты UltraRobot будут обладать как свойствами UltraRobot, так и свойствами Robot:

var guard = new UltraRobot("Выполняет вычисления");
var feature = guard.feature;
var canFly = guard.hasJetpack;
guard.doAction();

Способ проверки доступности свойств интерпретатором в этом примере аналогичен тому, который обсуждался выше. Сначала проверяются свойства экземпляра объекта, затем, если совпадения не обнаружено, проверяется прототип (UltraRobot). Если совпадений не обнаружено и в прототипе, проверяется прототип "родителя" (Robot), и далее процесс повторяется рекурсивно вплоть до Object.



( )


10

?

:










@ 2008-2011 Amber

.