了解JavaScript错误对象
Understanding the JavaScript Error object
我不确定像message
这样的属性在Error
JavaScript对象上下文中是如何工作的,所以我做了一个测试:
var e = new Error('foo');
console.log(Object.keys(e)); // displays "[]"
现在:
var e = new Error();
e.message = 'foo';
console.log(Object.keys(e)); // displays "['message']"
我想,当一条消息被传递给构造函数时,这个字段将属于Error
对象原型,但我不知道如果我能用我的一个类来重现同样的行为,以更好地理解:
function C(msg) {
// **What to write here to make msg belong to the C prototype?**
}
var c = new C('foo');
console.log(Object.keys(c)); // **I would like it to display []**
我的问题是:如何在C类中模拟Error消息属性行为?
您可以使用Object.defineProperty()
定义一个不可枚举的属性:
function C(msg) {
// you an use enumerable: false in the third argument,
// but it is false by default
Object.defineProperty(this, "message", { value: msg });
}
var c = new C("hello");
console.log(Object.keys(c).length); // 0
console.log(c.message); // hello
如果你不关心message
是否可枚举(从你的问题中还不清楚),那么你可以使用这个普通的方法:
function C(msg) {
this.message = msg;
}
var c = new C("hello");
console.log(Object.keys(c).length); // 1
console.log(c.message); // hello
相关文章:
- object响应时出现对象错误javascript
- Google嵌入API cb=gap对象错误
- JavaScript JSON对象对象错误
- JSON字符串到JavaScript对象错误
- Symfony2 JSON 对象 - 错误未捕获类型错误:无法使用“in”运算符搜索“636”
- 使用 Javascript 读取 JSON 对象(错误)
- 新的 $.fn.MyObject() 在 IE8 中触发“预期对象”错误
- 如何删除未定义的对象错误并根据位置重定向用户
- “'$' 为空或不是对象 ” 错误在 ajax 响应中
- 如何使用 AJAX 发布多个 JQuery 值并避免对象错误
- 我在IE移动版中使用计时器时收到[对象错误]
- IE8 中出现“需要对象”错误
- 存储为空或不是 dojo 中的对象错误
- IE 中需要 JavaScript 对象错误
- GSON 不是对象错误
- 如何使用TinyMCE和Internet Explorer 8解决“需要对象”错误消息
- 工作灯适配器 它不是一个函数,它是“对象”.错误
- IE8 - “为空或不是对象”错误
- 将小时数添加到 JavaScript 日期对象错误
- AJAX 请求导致“未定义不是对象”错误