【发布时间】:2016-08-27 10:46:07
【问题描述】:
我有一个自定义错误对象,我正在尝试更改继承的堆栈。
this.stack = (new Error(message)).stack
由于某种原因,此错误仅在 firefox 中发生。
TypeError: "stack" is read-only
【问题讨论】:
标签: javascript class object error-handling
我有一个自定义错误对象,我正在尝试更改继承的堆栈。
this.stack = (new Error(message)).stack
由于某种原因,此错误仅在 firefox 中发生。
TypeError: "stack" is read-only
【问题讨论】:
标签: javascript class object error-handling
您正在扩展 es6-error,它定义了 stack 属性,如下所示:
Object.defineProperty(this, 'stack', {
enumerable : false,
value : (new Error(message)).stack,
});
默认情况下,已定义属性is supposed to be false 的writable 属性。在严格模式下,this will result in an error。因此,您的代码似乎在 Firefox 的严格模式下运行。
【讨论】:
es6-error 类交互并拥有一个可写的stack?
Object.defineProperty(this, 'stack', { ... }) 而不是赋值 (this.stack = ...) 来专门在原型子对象上创建属性,即使原型父对象具有同名的不可写属性。不过,我不知道这如何/是否适用于类机制。
can't redefine non-configurable property "stack"
es6-error 模块的所有者发布了更新并使堆栈可写!耶!