В продолжение обсуждения конфигурационных свойств, который был начат в ветке
Проблема с созданием класса - Значения свойств передаются другому экземпляру появился вопрос.
Как правильно написать методы
update* у двух связанных параметров?
Их связь заключается в том, что изменив один из них, другой пересчитывается и наоборот.
Например есть класс Арка. Арку можно определить как через радиус арки, так и через высоту арки. Я пишу такой код:
Ext.define("Arc", {
config: {
height: 0,
radius: 0
},
applyHeight: function(height) {
this._radius = <расчет радиуса на основании высоты>;
return height;
},
applyRadius: function(radius) {
this._height = <расчет высоты на основании радиуса>;
return radius;
}
});
Тут мне приходится выкручиваться. Если я вызову
this.setRadius() вместо присвоения
this._radius = , то все зациклится. И чтобы не запустился apply* связанного параметра, приходится присваивать
this._radius =.
Это какой-то недокументированный способ. Я просто подсмотрел, где хранятся конфиги. Оказалось что в переменных с префиксом подчеркивание.
А как правильно это сделать?