Обновите класс, когда используется экспрессионный Super Class SetterJavascript

Форум по Javascript
Ответить
Anonymous
 Обновите класс, когда используется экспрессионный Super Class Setter

Сообщение Anonymous »

У меня есть проблема с данными в классе расширения, не изменяется, когда я изменяю данные в супер классе. Я уже читал в Mixin, но я еще не вижу, как это поможет мне. По умолчанию установлены в конструкторе с помощью файла настроек. Высота , width и глубина может быть изменена с помощью сеттеров, в то время как объем всегда рассчитывается. Контейнер всегда существует; Он также может существовать без продукта. На самом деле это еще не все, но чтобы упростить это, я ограничиваю это на это в примере.

По сути, я вызываю продукт класса расширения < /code>, который может существовать только в контейнере < /code>. Он вычисляет количество, основанное на плотности и томе супер класса.
Это та часть, которая работает нормально.

Теперь проблема заключается в том, что размер контейнера может измениться, а также также объем. Это означает, что количество продукта тоже должно измениться, но это не так. Расширенный класс не распознает обновление данных супер класса. < /P>
Как я могу заставить его работать?

Код: Выделить всё

class Container {
#height;
#depth;
#width;

constructor() {
this.#height = 10;
this.#depth = 10;
this.#width = 10;
}

set width(length) {
this.#width = length;
}

get volume() {
return this.#width * this.#height * this.#depth;
}
}

class Product extends Container {
#density;

constructor(volume) {
super(volume);
this.#density = 4;
}

get quantity() {
return this.volume * this.#density;
}
}

const container = new Container();
const product = new Product();

// expectin 4,000 - true
console.log(product.quantity);

// expecting 6,000 - false
container.width = 15;
console.log(product.quantity);



Подробнее здесь: https://stackoverflow.com/questions/797 ... er-is-used
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»