【问题标题】:How to throw error when accessing non existent property of JavaScript object访问 JavaScript 对象不存在的属性时如何抛出错误
【发布时间】:2015-02-04 08:23:11
【问题描述】:

当我尝试访问不存在的对象属性时,JavaScript 中是否有任何方法可以引发错误?

inst.prop //Error

【问题讨论】:

标签: javascript


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    zealit Node 包提供了一种方法:

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

    【讨论】:

    • 对。因为它使用代理,正如我在回答中所讨论的那样。
    猜你喜欢
    • 1970-01-01
    • 2011-02-04
    • 1970-01-01
    • 1970-01-01
    • 2016-01-29
    • 2019-09-25
    • 1970-01-01
    • 2016-08-26
    • 2017-10-03
    相关资源
    最近更新 更多