【发布时间】:2012-04-17 16:33:01
【问题描述】:
好的,所以我在发帖前做了一些搜索...没有运气(或者我可能只是愚蠢)。
我有一个我称之为“myArray”的数组,我将对象推送到它上面以填充一些变量:
myArray.push({
time : (y.moveTime - y.startTime),
pos : y.move,
last : myArray[y.recents.length-1].time
});
我的问题是为什么 firebug 会抱怨“last”变量:“Uncaught TypeError: Cannot read property 'time' of undefined”。如果我这样做了
last : myArray[y.recents.length-1]
一切都很好。
我不明白的观察: 当我有“.time”引用时数组是空的,但如果我删除它,数组是满的。
我在这里错过了什么?我不明白 :(
感谢您的任何指点。
【问题讨论】:
-
我应该补充一点,我确实明白这个数组中的第一个项目将具有“最后一个”变量“未定义”,因为它没有什么可以参考的。
-
您是否检查过
myArray[y.recents.length - 1]存在而不是undefined? -
@tim 您在自己的评论中有答案:对于第一项
myArray[y.recents.length-1]未定义,undefined.time失败。
标签: javascript oop object reference