Safari评估它所代表的代码:TypeError:undefined不是一个对象

时间:2017-04-21 08:11:52

标签: javascript safari

我的代码有两种模式。根据模式,data_holder可能会有很大不同。

我有以下代码。

if (mode == 1) {
    trials[i]['material'][k]['named'] = data_holder[a]['segmentation']['named']
// more stuff that works fine.          

} else if (mode == 2) {
    // more stuff that works fine

}

我在Chrome和Safari上都进行了测试。对于这两种模式,它在Chrome中运行良好。 模式1也适用于safari,但模式2会引发以下错误。扼杀,引发的错误不在应该执行的部分。

  

TypeError:undefined不是对象(评估   ' data_holder [A] ['分割']&#39)

为什么评估data_holder [a] ['细分']当它不应该在if语句的那一部分时?

1 个答案:

答案 0 :(得分:0)

尝试在Safari控制台中粘贴此代码,它可以正常工作:

trials = []
data_holder = {}
mode = 2

if (mode == 1) {
    trials[i]['material'][k]['named'] = data_holder[a]['segmentation']['named']
// more stuff that works fine.          

} else if (mode == 2) {
    // more stuff that works fine
    console.log("safe");
}

可能正在发生的其他事情导致模式不能像你期望的那样设置为2。