繁体   English   中英

在JS中访问属性时如何抛出错误?

[英]How can I throw an error when an attribute is accessed in JS?

如果没有定义属性,我想有一个属性抛出错误,就像在这个问题中一样 该问题的每个答案建议使用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添加不可枚举的属性?

这是通过Object.defineProperty完成的

Object.defineProperty(myObj, 'foo', {get: function () {/* see next part */}});

我定义了一个getter ,因此您将看到错误消息,而无需使用()来调用该函数。

我怎么能抛出错误?

这与使用throw语句一样简单。 JavaScripts最接近您正在寻找的错误类型很可能是ReferenceError

throw new ReferenceError("Subclasses should implement this!");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM