property undefined - 如何解决

时间:2018-01-29 17:30:47

标签: javascript

我收到错误消息

Uncaught TypeError: Cannot read property 'top' of undefined
at VM32939 own.js:819

var hands_corrected = (hands_original.top + 680)

这是正确的,因为" hands_original"在我的项目的任何页面上都没有使用,因此hands_original是未定义的,因此是错误的。

我试着用

来解决它
var hands_corrected = (hands_original.top + 680) || 0;

但这仍然让我错误。我做错了什么?

3 个答案:

答案 0 :(得分:1)

您可以使用

var hands_corrected = (hands_original && hands_original.top + 680) || 0; 

或者

var hands_corrected = hands_original ? hands_original.top + 680 : 0;

答案 1 :(得分:1)

有两件事你需要注意 hands_original hands_original.top 所以我更愿意以这种方式检查它们

var hands_corrected = (typeof(hands_original) != 'undefined' && typeof(hands_original.top) != 'undefined') ? hands_original.top + 680 : 0;

如果仅检查hands_original.top,并且hands_original未定义,我们将得到" ReferenceError:hands_original未定义"所以我建议像我的代码一样检查两者

答案 2 :(得分:0)

似乎hands_original是一个对象,它有一个名为top的密钥。在这种情况下,对象hands_original似乎未定义,因此无法找到密钥{{1 }}

top

通过此代码,您正在检查是否定义了var hands_corrected=hands_original && hands_original.top+680||0; ,如果已定义,则为其添加一个数字,其值为key top。如果hands_original未定义,请将hands_original分配给0变量