2015-01-31 44 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 : {} 
};