【问题标题】:Dynamically add properties to object为对象动态添加属性
【发布时间】:2022-09-27 21:13:07
【问题描述】:

在 Javascript 中,我创建了一个像这样的对象:

this.view.objectExample.accessibilityConfig= {
    \'propertyA\': 1,
    \'PropertyB\': 2,
    \'PropertyC\': 3
};

我试图在运行时添加一个新属性,但得到“无法设置未定义的属性”错误。

代码使用示例:

this.view.objectExample.accessibilityConfig.propertyD[\'flag\'] = true;

设置这样的新属性的正确方法是什么?

也试过这样:

this.view.objectExample.accessibilityConfig.propertyD.flag = true;
  • 您需要先创建this.view.objectExample.accessibilityConfig.propertyD 属性,然后在其上创建 flag 属性。您可以通过为其分配一个对象来组合它们:this.view.objectExample.accessibilityConfig.propertyD = {flag: true};
  • 目前还不清楚这个问题的 TypeScript 部分是什么......?

标签: javascript typescript object


【解决方案1】:

因为原对象中没有propertyD,所以accessibilityConfig.propertyD就是undefined

您可以为对象动态添加属性,但该对象必须首先存在。对于对象层次结构的每个级别都是如此。所以在你可以这样做之前:

this.view.objectExample.accessibilityConfig.propertyD.flag = true;

你必须这样做:

this.view.objectExample.accessibilityConfig.propertyD = {};

或者你可以同时做这两个:

this.view.objectExample.accessibilityConfig.propertyD = { flag: true };

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-31
    • 2015-12-12
    • 2012-01-12
    • 2011-10-05
    • 2017-10-14
    • 1970-01-01
    • 2014-05-29
    相关资源
    最近更新 更多