javascript - 不传播的原因是什么(es 6传播运算符)javascript错误对象

标签 javascript node.js ecmascript-6

这个问题在这里已经有了答案:





Is it not possible to stringify an Error using JSON.stringify?

(12 个回答)


3年前关闭。




我正在尝试传播 Javascript 错误 对象(标准内置对象)。我将空对象作为输出。

let error = new Error('error');
console.log({...error});

输出:
{}

不传播Error对象的原因是什么?

最佳答案

这是因为 spread syntax in object literals “将自己的可枚举属性从提供的对象复制到新对象上”。

您的 Error 对象的所有属性都不可枚举。

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});

关于javascript - 不传播的原因是什么(es 6传播运算符)javascript错误对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49103692/

相关文章:

javascript - 多次调用多次链接 Promise.all() 的最佳方法

javascript - 使用 ES 生成器渲染 React 组件

javascript - 使用 jQuery 的 animate with css 过滤器。

javascript - location.href 的回调函数

javascript - 在 url,vue.js 中使用 "?"时滚动到 id 元素

javascript - 尝试为 Node.js 安装 npm 时出错

javascript - 阻止直接访问 Azure 文件,除非通过 Ember 应用程序

javascript - 使用javascript清除按钮单击上的输入框

javascript - 在 Reactjs 中导入另一个(辅助)类

javascript - 如何将对象键名与lodash匹配?