Не может преобразовать неопределенное в объект

Я получаю сообщение об ошибке "Не удается преобразовать неопределенный объект в строку 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 ответ

Решение

hasOwnProperty(prop) не существует - вам нужно квалифицировать его с именем объекта. Просто измените это на card.hasOwnProperty(prop),

Вы можете упростить это дальше:

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

Это вернется true или же null, Или вы можете упростить еще больше:

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

Это вернется true или же false,

Другие вопросы по тегам