這是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) – 2014-09-05 17:42:56