Vererbung vom Error-Objekt - wo ist die Message-Eigenschaft?

Bemerkte ich ein seltsames Verhalten beim definieren von benutzerdefinierten Fehler-Objekte in Javascript:

function MyError(msg) {
    Error.call(this, msg);
    this.name = "MyError";
}
MyError.prototype.__proto__ = Error.prototype;

var error = new Error("message");
error.message; //"message"

var myError = new MyError("message");
myError instanceof Error; //true
myError.message; //"" !

Warum new Error("message") legen Sie die message Eigenschaft, während Error.call(this, msg); nicht? Sicher, ich kann nur definieren this.message = msg im MyError Konstruktor, aber ich verstehe nicht ganz, warum dies nicht bereits in den ersten Platz.

InformationsquelleAutor der Frage Philippe Plantier | 2012-01-10

Schreibe einen Kommentar