Как пример прототипа Yegge обрабатывает переменные экземпляра?

Мне нравится Стив ЙеггеПример прототипа и решил быстро привести пример концепции.

Тем не менее, я на самом деле не продумывал вещи. Хотя он отлично подходит для динамического определения поведения объектов и является простым решением для Стивасамоуверенный эльф Например, я все еще пытаюсь найти лучший способ обработки переменных экземпляра.

Например, допустим, у меня есть объект AwesomeDragon. Затем я хочу создать объект AwesomeDragonImmuneToFire, поэтому я делаю нового потомка AwesomeDragon (AwesomeDragonImmuneToFire) наследует свойства от AwesomeDragon) и помещает «ImmuneToFire» как свойство со значением «true». Все идет нормально. Теперь предположим, что я хочу отправить свой объект AwesomeDragon на экскурсию по соседним крестьянским деревням. Это будет включать обновление свойства 'position' AwesomeDragon. Однако, как только я это сделаю, AwesomeDragonImmuneToFire также сработает.

Является лучшим решением для переопределения значений экземпляра при создании объекта, например немедленно «поместить» значение «position» на AwesomeDragonImmuneToFire в текущее значение «get» для «position»?

Ответы на вопрос(2)

Ваш ответ на вопрос