JS能够覆盖对象的Getter方法

is JS able to overwrite Object's Getter method?

本文关键字:Getter 方法 对象 覆盖 JS      更新时间:2023-09-26

everyone:

众所周知,从 Object 获取不存在的值会得到一个"未定义",有没有办法抛出错误而不是返回undefined

例如:

var a= {example:"example"};
//do something here
a.b  //error throw instead of "undefined"

非常感谢帮助。

Object.define 属性有一种指定 get 和 set 方法的方法

查看下面的链接

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty

Object 类有一个方法"hasOwnProperty",它也可以用来在尝试访问属性之前检查它是否存在

ES6 附带了代理对象,它将帮助您重载点运算符。这意味着您可以在检索属性时调用函数。这将允许您检查属性是否已定义,以及它是否没有"引发"错误。希望这有帮助。更多信息在这里

查看上面的例子,如果你试图在定义"a"后用一个值初始化对象 a 上的属性"b",那么你可以很容易地执行以下操作:

var a= {example:"example"};
//do something here
a.b = 'some value';
a.b  //now an error is not throw

大多数对象即使在初始化后也可以重新定义。初始化对象后,可以添加和删除属性和方法。我说大多数,因为可以防止对象被扩展/更改(使用Object.preventExtension方法(。https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Object/preventExtensions