我正在尝试扩展Javascript Error对象(标准内置对象)。我要得到空对象作为输出。
let error = new Error('error');
console.log({...error});产出:
{}不扩展错误对象的原因是什么?
发布于 2018-11-06 07:15:28
这是因为对象文本中的扩展语法“将自己的可枚举属性从提供的对象复制到新对象”。
错误对象的属性中没有一个是可枚举的。
var error = new Error('error');
var props = Object.getOwnPropertyDescriptors(error);
console.log(props); // none of these are enumerable
所以扩展语法不复制任何内容。如果它有一个可枚举的值,那么它就会复制它:
var error = new Error('error');
error.foo = 'bar';
console.log({...error});
https://stackoverflow.com/questions/53167026
复制相似问题