Я заметил странное поведение при определении настраиваемых объектов ошибок в 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; // "" !
Почему new Error("message") устанавливает свойство message, а Error.call(this, msg); - нет? Конечно, я могу просто определить this.message = msg в конструкторе MyError, но я не совсем понимаю, почему он еще не установлен в первую очередь.
