【发布时间】:2015-02-04 08:23:11
【问题描述】:
当我尝试访问不存在的对象属性时,JavaScript 中是否有任何方法可以引发错误?
inst.prop //Error
【问题讨论】:
标签: javascript
当我尝试访问不存在的对象属性时,JavaScript 中是否有任何方法可以引发错误?
inst.prop //Error
【问题讨论】:
标签: javascript
目前不,不,不在对象本身上。 ES2015+ 提供代理,如果您将对象包装在代理中,那么当您尝试通过底层对象没有的代理读取属性时,您可以让代理抛出错误。但这需要包装在代理中,并且需要在您使用的环境中支持 ES2015(代理不能被填充)。所有最新的主要 JavaSript 引擎都支持代理。如果您在网络上执行此操作,则稍旧的浏览器(例如 IE11)中的引擎不支持代理,并且无法填充。
【讨论】:
zealit Node 包提供了一种方法:
const zealit = require('zealit')
const ref = { foo: true, bar: undefined }
const zealed = zealit(ref)
zealed.prop // => will raise an error
【讨论】: