首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在对象中使用数学运算

问在对象中使用数学运算
EN

Stack Overflow用户
提问于 2014-09-06 01:37:32
回答 1查看 35关注 0票数 0

这是一个用JS编写的单位转换器。当有人换算体积时,输入的体积首先换算成升,然后再换算成其他单位。计算值将自动显示在输入字段中。为此,我创建了一个对象来存储转换值,如下所示:

代码语言:javascript
复制
var volumes={
    cbm: 1000,
    ltr: 1,
    ml: 0.001,
    barrel: 158.9873,
    gal: 3.785411784,
    pint: 0.473176473,
    floz: 0.0295735295625,
    //and so on
};

对于一个系统的单位之间的转换,我尝试这样做:

代码语言:javascript
复制
var volumes={
  impfloz: 0.0284130642624675,
  imppint: this.impfloz*20,
  impbarrel: this.impfloz*5600,
  impgal: this.impfloz*160
};

但它并没有起作用。当我键入一个值时,例如在输入字段“Imperial-Barrel”中,所有其他输入字段都显示为: NaN。我真的需要为每一个都写函数吗?这会使代码变得更加复杂和难以阅读。有没有办法让对象成员自动应用所需的数学运算?

EN

回答 1

Stack Overflow用户

发布于 2014-09-06 01:41:54

不,你不能这么做。但是有什么问题呢?

代码语言:javascript
复制
var impfloz = 0.0284;
var volumes={
    impfloz: impfloz,
    imppint: impfloz*20,
    impbarrel: impfloz*5600,
    impgal: impfloz*160
};

如果您担心impfloz变量会污染全局名称空间,那么您可以将整个过程包装在一个生命周期中。

this只在函数中有意义,在函数中它指的是调用函数所针对的对象。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25691190

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档