未捕获的类型错误:无法读取未定义的属性 - javascript
2015-06-06
1909
我知道这个问题以前有人问过,但是我查看了该问题的不同版本,并没有找到针对我这个问题的答案。
我的代码:
var display = {
difference: function(a) {
return Math.abs(state.price - state.greens[a].pricePer30);
},
// Some more methods here
当我运行代码时,我得到了这个:
Uncaught TypeError: Cannot read property 'pricePer30' of undefined
但是,如果我运行
console.log(display.difference(0))
它会返回正确的答案。
当我阅读 此 问题时:
我认为我使用的参数实际上可能在脚本的其他地方被重复使用,因此我将参数更改为:
var display = {
difference: function(num) {
return Math.abs(state.price - state.greens[num].pricePer30);
},
// Some more methods
但我收到了相同的错误消息。
我应该在代码中寻找什么来解决这个问题?
1个回答
问题显然在于 state.greens[a] 对于特定索引 a 未定义。在前面添加检查以摆脱直接问题,但我猜你还必须调查为什么它对于索引 a 也未定义。
if(typeof state.greens[a] !== "undefined") {
return Math.abs(state.price - state.greens[a].pricePer30);
} else {
console.warn("Found undefined state for index: ", a);
}
Georgios Dimitriadis
2015-06-06