无法将undefined转换为对象

时间:2012-09-20 15:32:44

标签: javascript thunderbird-addon

我收到错误“无法将未定义转换为行return hasOwnProperty(prop);上的对象而我根本无法找出问题所在。我可以在必要时发布更多代码。

getCardProperty : function (card, prop, def) {
    if (typeof def === "undefined") {
        def = null;
    }

    // json synckolab object
    if (card.synckolab) {
        if (card.hasOwnProperty(prop)) // TODO better check for undefined?
        {
            return hasOwnProperty(prop);
        }
        return null;
    }

1 个答案:

答案 0 :(得分:1)

hasOwnProperty(prop)不存在 - 您需要使用对象名称对其进行限定。只需将其更改为card.hasOwnProperty(prop)

您可以进一步简化:

if (card.synckolab) {
    return card.hasOwnProperty(prop) || null;
}

这将返回truenull。或者你可以进一步简化:

if (card.synckolab) {
    return card.hasOwnProperty(prop);
}

这将返回truefalse