繁体   English   中英

OOO javascript:object 自参考返回未定义但控制台显示它存在

[英]OOO javascript: object self reference returns undefined but console shows it exists

好吧,所以我在发布之前确实进行了一些搜索......没有运气(或者我可能只是愚蠢)。

我有这个数组,我称之为“myArray”,我将对象推到它上面以填充一些变量:

myArray.push({
    time        : (y.moveTime - y.startTime),
    pos         : y.move,
    last        : myArray[y.recents.length-1].time
});

我的问题是为什么萤火虫会抱怨“最后一个”变量:“ Uncaught TypeError: Cannot read property 'time' of undefined ”。 如果我做

last        : myArray[y.recents.length-1]

一切都好。

我不明白的一个观察:当我有“.time”引用时,数组是空的,但如果我删除它,数组就满了。

我在这里错过了什么? 我不明白:(

感谢您的指点。

该错误意味着的评估值

myArray[y.recents.length-1]

不是具有time属性的 object。 当您执行第一次push时可能会发生这种情况,因为该数组还没有任何元素。

如果你想隐藏错误并在这种情况下将last属性分配给undefined ,你可以只添加一个回退值:

last: (myArray[y.recents.length - 1] || {}).time 

myArray[y.recents.length-1]的值可以是任何东西(一些字符串,object,数组,null 等)。 你可以用它设置last的值,不会出错。

但是,如果将属性设置为非对象(如设置time ),则会导致错误。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM