2016-05-02 2 views

ответ

4

Вы простирающийся es6-error, который определяет stack свойство как это:

Object.defineProperty(this, 'stack', { 
    enumerable : false, 
    value : (new Error(message)).stack, 
}); 

Source

По умолчанию атрибут определенного имущества is supposed to be falsewritable. В строгом режиме, this will result in an error. Таким образом, кажется, что ваш код работает под строгим режимом в Firefox.

+0

Есть ли способ взаимодействовать с классом «es6-error» и иметь «стек», который доступен для записи? – ThomasReggi

+0

@ThomasReggi Не совсем. Попытка переопределить свойство [приведет к ошибке.] (Https://jsfiddle.net/sydjzb21/1/) Вы можете создать новое свойство под другим именем, но вы не можете изменить существующее свойство. –

+0

@ThomasReggi Вы можете использовать 'Object.defineProperty (это, 'stack', {...})' вместо назначения ('this.stack = ...'), чтобы создать свойство специально для дочернего элемента-прототипа, даже если родитель-прототип имеет одноименное свойство, не подлежащее записи. Я не знаю, как/если это работает с классной механикой. – apsillers