这是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。我真的必须为每个函数编写函数吗?这将使代码更加复杂且难以阅读。有没有办法让对象成员自动应用所需的数学运算?
最佳答案
不,你不能那样做。但是怎么了
var impfloz = 0.0284;
var volumes={
impfloz: impfloz,
imppint: impfloz*20,
impbarrel: impfloz*5600,
impgal: impfloz*160
};
如果您担心使用
impfloz
变量污染全局名称空间,则可以将整个内容包装在IIFE中。this
仅在函数内具有含义,它指的是针对其调用函数的对象。关于javascript - 在对象中使用数学运算,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25691190/