我收到错误消息
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;
但这仍然让我错误。我做错了什么?
答案 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
变量