Это преобразователь единиц в JS. Когда кто-то конвертирует тома, входной объем сначала преобразуется в литеры, а затем в каждую другую единицу. Вычисленные значения автоматически отображаются в полях ввода. Для этой цели я создал объект для хранения преобразования значений, например так:Использование математических операций в объектах
var volumes={
cbm: 1000,
ltr: 1,
ml: 0.001,
barrel: 158.9873,
gal: 3.785411784,
pint: 0.473176473,
floz: 0.0295735295625,
//and so on
};
И для преобразования между блоками одной системы я попытался это:
var volumes={
impfloz: 0.0284130642624675,
imppint: this.impfloz*20,
impbarrel: this.impfloz*5600,
impgal: this.impfloz*160
};
Но это не сработало , Когда я печатаю значение, например. в поле ввода «Imperial-Barrel» отображаются все остальные поля ввода: NaN. Должен ли я писать функции для каждого из них? Это сделало бы код намного сложнее и труднее читать. Есть ли способ заставить членов объекта автоматически применять желаемую математическую операцию?
См. [Самостоятельные ссылки в декларациях литералов объектов] (http://stackoverflow.com/a/4616273/218196) –