2012-04-25 46 views
0

有趣的问题尝试运行这段代码:使用JavaScript对象字面

var oObject = {"COL_SEQ":16,"SERVICE_CD":0.000000,"SERVICE_ID":0.000000,"COL_NAME":"","COL_OPTION":"nosort nofilter","COL_CLASS":"REMOVE_PATIENT","COL_TYPE":"","COL_LABEL":"","COL_OPTION":""}; 

alert(oObject.COL_SEQ); 
alert(oObject.COL_OPTION); 
alert(oObject.COL_CLASS); 

我希望第二个警报,以示“NOSORT NOFILTER”,但事实并非如此;它提醒一个空白的消息。

活生生的例子: http://jsfiddle.net/zD7Wm/

这究竟是为什么?

回答

4

在对象末尾有第二个(空的)COL_OPTION,它会覆盖最初的一个。

如果你把第二个,你的代码工作正常:

var oObject = {"COL_SEQ":16,"SERVICE_CD":0.000000,"SERVICE_ID":0.000000,"COL_NAME":"","COL_OPTION":"nosort nofilter","COL_CLASS":"REMOVE_PATIENT","COL_TYPE":"","COL_LABEL":""}; 
+0

好眼力,史蒂夫。 – Marc 2012-04-25 23:11:45

+0

而且,这是为什么不应该使用超出屏幕边界的代码的一个很好的理由。很难注意到这些类型的错误。 – jfriend00 2012-04-25 23:12:17

+0

你相信我在过去的45分钟里一直在看这个,并没有注意到第二个COL_OPTION? :) – 2012-04-25 23:14:18