如何在访问 JavaScript 对象的不存在属性时抛出错误
How to throw error when accessing non existent property of JavaScript object
当我尝试访问不存在的对象属性时,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 方法将引发错误。
相关文章:
- AngularJS指令出错-无法读取属性'编译'的未定义
- 解析 /page.xhtml 时出错:跟踪错误[行: 42] 与元素类型“id”关联的属性“{1}”应使用左引号
- 为JavaScript类属性赋值时出错
- 访问console.log中的数据属性时出错
- 在Spring.message属性中添加新行时出错
- Javascript:“;无法读取属性'addEventListener'“为空”;尝试删除子项时出错
- '无法设置未定义'的属性;应用绑定时出错
- 使用Internet Explorer进行react redux trySubscribe时出错(无法获取未定义的属性“
- 在 Javascript 中使用警报时出错(对象的属性“alert”不是函数)
- css 可见性属性和 javascript setTimeout 方法出错
- 加载图表时出错 未捕获的类型错误:无法读取未定义的属性“到小写”
- 在网格视图中获取属性“行”时出错
- Metro Javascript.对项目进行分组时出错.ui.js firstItemIndexHint 属性
- 解析属性名称时出错
- Ember Data 1.0 加载路由时出错:类型错误:无法设置未定义的属性“类型键”
- 将 req.body 属性复制到猫鼬模型中时出错
- 尝试在火狐扩展中获取标题属性时出错
- JS:防止访问未定义对象的属性时出错
- 避免'无法读取未定义'的属性;映射数据时出错
- TYPO3 Neos:Apply content属性在JavaScript中运行时出错