【发布时间】:2012-02-06 20:08:37
【问题描述】:
我在 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); 不设置?当然,我可以在 MyError 构造函数中定义 this.message = msg,但我不太明白为什么一开始还没有设置它。
【问题讨论】:
标签: javascript