Скажем, у меня есть объект JavaScript, например:
var obj = {};
obj.computers = {};
obj.computers.favorite = "Commodore 64";
obj.computers.popular = "Apple";
Теперь я могу легко проверить нулевое значение:
if(obj != 'undefined' && obj != null) {
if(obj.computers != 'undefined' && obj.computers != null)) {
.....
Как вы можете видеть, если мне нужно определить, был ли установлен obj.computers.favorite
, я должен действительно вставить некоторую условную логику. Некоторые из наших объектов идут на глубину 3, 4, 5.
Вот что я хотел бы сделать:
var fav = obj.computers.favorite || 'Unknown';
Но я понимаю, что мне нужно будет обернуть это каким-то способом. Что-то вроде:
var fav = getValueOrDefault(obj.computers.favorite, 'Unknown');
Предложения оценены.
Спасибо
ИЗМЕНИТЬ
Моя проверка на 'undefined' на самом деле не используется. Он просто вышел из моей головы, задавая вопрос. лол
Но мне было интересно, могу ли я просто вставить в try/catch и сбросить default, если исключение?
function(obj, default) {
try {
if(obj != null) {
return obj;
} else {
return default;
}
} catch(ex) {
return default;
}
}
Кроме того, благодаря Шуси для указания избыточных варов.