为啥错误不能被字符串化? [复制]
Posted
技术标签:
【中文标题】为啥错误不能被字符串化? [复制]【英文标题】:Why can Errors not be stringified? [duplicate]为什么错误不能被字符串化? [复制] 【发布时间】:2015-06-05 22:50:00 【问题描述】:为什么错误不能被字符串化?
JSON.stringify(new ReferenceError('foo')); //
例如,当 Date 做一些更有用的事情时:
JSON.stringify(new Date()); // "2015-04-01T10:23:24.749Z"
【问题讨论】:
看看 [avascript-stringify-object-including-members-of-type-function][1] [1]: ***.com/questions/3685703/… 【参考方案1】:javascript Error
对象不是 enumerable。您可以轻松验证这一点:
new Error('Test').propertyIsEnumerable('message');
// -> false
但是,您可以在错误对象上定义自己的 toJSON
函数:
Object.defineProperty(Error.prototype, 'toJSON',
value: function ()
return value: "Test";
,
configurable: true
);
JSON.stringify(new Error());
-> "value: "Test""
【讨论】:
以上是关于为啥错误不能被字符串化? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
为啥我不能在没有括号的插值字符串中使用条件运算符? [复制]