如何在访问 JavaScript 对象的不存在属性时抛出错误

How to throw error when accessing non existent property of JavaScript object

本文关键字:属性 出错 错误 不存在 访问 JavaScript 对象      更新时间:2023-09-26

当我尝试访问不存在的对象属性时,JavaScript 中有什么方法可以抛出错误吗?

inst.prop //Error

目前不是,不,不是在对象本身上。ES2015+ 提供代理,如果将对象包装在代理中,则当您尝试通过基础对象没有的代理读取属性时,可以让代理引发错误。但这需要包装在代理中,并且需要在您使用的环境中支持 ES2015(代理不能填充)。所有最新的主要JavaSript引擎都支持代理。如果您在 Web 上执行此操作,则稍旧的浏览器(例如 IE11)中的引擎不支持代理,并且它们无法填充。

zealit Node 包提供了一种方法:

const zealit = require('zealit')
const ref = { foo: true, bar: undefined }
const zealed = zealit(ref)
zealed.prop // => will raise an error

我不够高级或博览群书,无法谈论代理的使用。如果我需要这种类型的功能,我会选择创建一个具有私有属性和 getter 方法的类。如果传递了无效的密钥,getter 方法将引发错误。