2015-01-31 45 views
0

因此,我正在使用JavaScript支持的轉換器應用程序,現在我正嘗試創建一個包含所有度量的巨大對象。但每當我調試它,它說的東西,如:面向對象的JavaScript轉換器

Expected ';' and instead saw '.' (var units.length = {};) 
Expected '.' at column 1, not column 10 (var units.length = {};) 
Unexpected '.' (var units.length = {};) 
etc. 

它一直以來我在JS編碼很長一段時間,所以我有一些困惑有了它,希望得到任何幫助,這裏的代碼:

var units = {}; 
var units.length = {}; 
var units.time = {}; 
var units.mass = {}; 
var units.temperature = {}; 

//Starting with Length 
units.length.meter = 1; 
units.length.meters = 1; 

units.length.inch = 0.0254; 
units.length.inches = 0.0254; 

units.length.foot = 0.3048; 
units.length.feet = 0.3048; 

units.length.yard = 0.9144; 
units.length.yards = 0.9144; 

units.length.mile = 1609.344; 
units.length.miles = 1609.344; 

... 
+4

'var units.length'根本就是無效的JS。刪除'var',就像你對'units.length.meter = 1;'做的那樣。 – 2015-01-31 18:01:29

回答

6

僅使用var聲明變量,而不是創建現有對象的屬性:

var units = {}; 
units.length = {}; 
units.time = {}; 
units.mass = {}; 
units.temperature = {}; 

//Starting with Length 
units.length.meter = 1; 
units.length.meters = 1; 

units.length.inch = 0.0254; 
units.length.inches = 0.0254; 

units.length.foot = 0.3048; 
units.length.feet = 0.3048; 

units.length.yard = 0.9144; 
units.length.yards = 0.9144; 

units.length.mile = 1609.344; 
units.length.miles = 1609.344; 

還要考慮

var units = { 
    length: { 
     meter: 1, 
     meters: 1, 
     inch: 0.0254, 
     inches: 0.0254, 
     foot: 0.3048, 
     feet: 0.3048, 
     yard: 0.9144, 
     yards: 0.9144, 
     mile: 1609.344, 
     miles: 1609.344 
    }, 
    time: {}, 
    mass: {}, 
    temperature: {} 
}; 
+1

謝謝!啊,我ara que veig el teu nom,visca els catalans al StackOverflow; D – Meowsome 2015-01-31 18:04:56

2

沒有var屬性之前,唯一的變量。

var units = { 
    length: {}, 
    time: {}, 
    mass: {}, 
    temperature : {} 
}; 

注意:長度是保留給數組/字符串的長度,你應該避免命名這樣的屬性。並且您應該使用擴展方法來避免重複unitsunits.length

var units = { 
    length: { 
     meter: 1, 
     meters: 1, 
     inch: 0.0254, 
     inches: 0.0254 // ... 
    }, 
    time: {}, 
    mass: {}, 
    temperature : {} 
};