2012-04-25 86 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