Задать вопрос

Дочерний класс предопределяет __proto__ родительского в JS?

В следующем коде дочерний объект Page_ класса Document_ предопределяет значение Location_ в прототипе. Как сделать чтобы по нормальному, но без конструкторов.

var Location_ = {ext: "loc"}
var Document_ = {}
Document_.__proto__.Location_ = Object.create(Location_.__proto__);
Document.__proto__.Location_.ext = 'doc';
var Page_ = Object.create(Document_.__proto__);
Page_.Location_.ext = 'page';
var Page2_ = Object.create(Document_.__proto__);
console.log(Location_.ext, Document_.Location_.ext, Page_.Location_.ext, Page2_.Location_.ext);

//loc page page page
  • Вопрос задан
  • 113 просмотров
Подписаться 3 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Aves
Прототип - это один и тот же объект. Естественно, если меняешь в нем свойство, то оно меняется для всех объектов, для которых данный является прототипом. В этом смысл прототипа и есть.
Если религия не позволяет использовать new и this, то
var Page = Object.create(Document);
Page.Location = {ext:'loc'};
или
var Page = Object.create(Document, {Location:{value:{ext:'loc'}}})
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы