如果未定义属性,我希望有一个属性抛出错误,如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');
};
答案 0 :(得分:3)
这个问题可以分为两部分,
var myObj = {}; // just an example, could be a prototype, etc
如何向对象添加不可枚举的属性?
完成的Object.defineProperty(myObj, 'foo', {get: function () {/* see next part */}});
我定义了 getter ,因此您将看到错误消息,而无需使用()
来调用该函数。
如何抛出错误?
这就像使用throw
语句一样简单。与您正在寻找的 JavaScripts 最接近的Error类型很可能是ReferenceError。
throw new ReferenceError("Subclasses should implement this!");