2016-05-02 15 views

Antwort

4

Sie es6-error erstreckt, die die stack Eigenschaft wie folgt definiert:

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

Source

standardmäßig das writable Attribut einer definierten Eigenschaft is supposed to be false. Im strikten Modus this will result in an error. So scheint es, dass Ihr Code im strikten Modus in Firefox läuft.

+0

Gibt es eine Möglichkeit für mich, mit der 'es6-error' Klasse zu interagieren und einen' stack' zu haben, der beschreibbar ist? – ThomasReggi

+0

@ThomasReggi Nicht wirklich. Der Versuch, eine Eigenschaft neu zu definieren [wird zu einem Fehler führen.] (Https://jsfiddle.net/sydjzb21/1/) Sie könnten eine neue Eigenschaft unter einem anderen Namen erstellen, aber Sie können die vorhandene Eigenschaft nicht ändern. –

+0

@ThomasReggi Sie könnten 'Object.defineProperty (this, 'stack', {...})' 'anstelle von assignment (' this.stack = ... ') verwenden, um eine Eigenschaft speziell für den Prototyp-Child zu erstellen, selbst wenn Prototyp Parent hat eine nicht schreibbare Eigenschaft mit dem gleichen Namen. Ich weiß nicht, wie/ob das mit der Klassenmechanik funktioniert. – apsillers