JavaScript中动态添加嵌套对象属性报错,求正确实现方法
解决JavaScript中*"Cannot set properties of undefined"*错误的正确方法
你遇到的错误核心原因是:accessibilityConfig对象里尚未定义propertyD属性,直接尝试给propertyD.flag赋值时,propertyD的初始值为undefined,而undefined无法设置任何属性,因此抛出该错误。
以下是几种正确的实现方式:
先初始化
propertyD为对象再赋值
先为propertyD创建一个空对象,之后再给它的flag属性赋值,两种语法都有效:// 先把propertyD初始化为空对象 this.view.objectExample.accessibilityConfig.propertyD = {}; // 使用点语法赋值 this.view.objectExample.accessibilityConfig.propertyD.flag = true; // 或者使用方括号语法 this.view.objectExample.accessibilityConfig.propertyD['flag'] = true;直接定义
propertyD及其属性
一次性完成propertyD对象的创建和flag属性的设置,写法更简洁:this.view.objectExample.accessibilityConfig.propertyD = { flag: true };用对象展开运算符合并(保留原有属性)
如果需要保留accessibilityConfig的所有原有属性,同时添加新的propertyD,可以使用对象展开运算符:this.view.objectExample.accessibilityConfig = { ...this.view.objectExample.accessibilityConfig, propertyD: { flag: true } };
内容的提问来源于stack exchange,提问作者Myst
相关产品推荐
相关产品推荐

