Следующее будет отображаться в Firebug или на jsconsole.com или в другой интерактивной консоли Javascript:
>>> foo = { a : 1, b : 2.2 }
Object { a=1, more...}
>>> foo.a
1
>>> foo.b
2.2
>>> { a : 1, b : 2.2 }
SyntaxError: invalid label { message="invalid label", more...}
>>> { a : 1 }
1
почему 1
возвращается для {a : 1}
и почему {a : 1, b : 2.2}
выдает ошибку? В Ruby они вернутся так же, как вы это определили.