当Object属性不存在时触发错误

Fire an error when Object property does not exists

本文关键字:错误 不存在 Object 属性      更新时间:2023-09-26

别名标题:对象属性的严格模式

我正在开发一个错误管理器,我希望它非常严格。假设您正在调用一个不存在的属性,这通常被解释为未定义,相反,它应该抛出一个错误,例如:

var obj = {};
obj.PI; //throw Error instead of undefined.

结果预期:

Uncaught ReferenceError: obj. error。PI未定义

我想在调用任何不存在的属性时出现这个错误,不一定是PI

首先,如果您知道想要捕获访问的特定属性,那么您可以为这些属性提供一个getter,并从getter抛出一个错误。

如果你不知道具体的属性,想要一个包罗万象的所有未定义的属性访问,那么你将需要ES6代理支持,目前还没有广泛使用(似乎在某些版本的Firefox和Microsoft Edge中,但在Chrome中没有)。所以,除非这是Firefox或edge特定的项目,否则你所要求的跨浏览器功能是不支持的,因为这不是Javascript的es5级别功能。

仅供参考,如果使用代理,您可能会对handler.get()方法感兴趣。

你可以在这里看到ES6代理支持的当前级别:https://kangax.github.io/compat-table/es6/

相关文章: