2014-12-17 5 views
1

В частности, я хотел бы преобразовать Javascript-ошибку в объект, свойства которого могут быть перечислены, и, следовательно, console.logged.Как клонировать ошибку javascript в стандартный объект

try { 
    throw new Error('418 : Blue Teapot of Death'); 
} catch (error) { 
    for (var k in arg) { console.log('Key found: ' + k); } // Outputs nothing 
} 

EDIT:

Используя @YeahBoy решение, есть окончательное решение, которое я принял, используя lodashвыбрать функцию:

var copy_with_enumerable_properties = function (obj) { 
    var props = Object.getOwnPropertyNames(obj); // Include non-enumerable properties 
    return _.pick(obj, props); 
}; 

try { 
    throw new Error('418 : Blue Teapot of Death'); 
} catch (error) { 
    var error_obj = copy_with_enumerable_properties(error); 
    error_obj.stack = error_obj.stack.split('\n'); 

    console.log(JSON.stringify(error_obj, null, 2)); 
} 

ответ

1

Попробуйте это.

try { 
    throw new Error('418 : Blue Teapot of Death'); 
} catch (error) { 

    var prop = Object.getOwnPropertyNames(error); 
    for (var k in prop) { console.log('Key found: ' + prop[k]); } 
} 
+0

Отлично, спасибо! –

+0

Добро пожаловать :) – kdlcruz

Смежные вопросы