Pourquoi les erreurs ne peuvent-elles pas être stringifiées?
JSON.stringify(new ReferenceError("foo")); // {}
Quand par exemple, Date fait quelque chose de plus utile:
JSON.stringify(new Date()); // "2015-04-01T10:23:24.749Z"
Réponses:
2 pour la réponse № 1JavaScript Error
les objets ne sont pas énumérable. Vous pouvez le vérifier facilement:
new Error("Test").propertyIsEnumerable("message");
// -> false
Vous pouvez cependant définir votre propre toJSON
fonction sur l'objet d'erreur:
Object.defineProperty(Error.prototype, "toJSON", {
value: function () {
return {value: "Test"};
},
configurable: true
});
JSON.stringify(new Error());
-> "{value: "Test"}"