如果属性未定义,我希望它抛出一个错误,如 this question .该问题的每个答案都建议使用 Python 的 @property
装饰器在未定义字段时引发异常。我如何在 JS 中做到这一点?
编辑:
我希望相当于:
var MyObj = {
method: function(){
throw new Error('This method is not implemented');
}
};
...但更接近于:
var MyObj = {
attribute: throw new Error('This attribute is not defined');
};
最佳答案
这个问题可以分为两部分,
var myObj = {}; // just an example, could be a prototype, etc
如何向对象添加不可枚举的属性?
这是用 Object.defineProperty
完成的
Object.defineProperty(myObj, 'foo', {get: function () {/* see next part */}});
我定义了一个 getter,因此您无需使用 ()
调用函数就可以看到错误消息。
我怎样才能抛出错误?
这就像使用 throw
一样简单陈述。 JavaScript 最接近 Error输入您要查找的内容很可能是 ReferenceError .
throw new ReferenceError("Subclasses should implement this!");
关于javascript - 在 JS 中访问属性时如何抛出错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16798554/