Object.getOw-6ren">
gpt4 book ai didi

javascript - "for var in"访问 JS 对象返回所有内容*但*自己的属性?

转载 作者:行者123 更新时间:2023-11-28 14:23:58 25 4
gpt4 key购买 nike

我在这里不知所措。谁能解释以下控制台输出是如何可能的?为什么在使用 for var p in 进行迭代时 label_multilingual_key 没有显示?

    > Object.getOwnPropertyNames(design_element)
(6) ["label_multilanguage_key", "value", "display_priority", "name", "help_text", "hidden"]

> for (var p in design_element) console.log(p);
VM226:1 value_type
VM226:1 element_type
VM226:1 requirement_setting
VM226:1 multiple_values_setting
VM226:1 user_enabled_setting
VM226:1 grid_size_setting
VM226:1 show_to_users
VM226:1 disable_label
undefined

> console.log(design_element)
VM262:1
{label_multilanguage_key: "&&mlkey_enable_filtering_for_id", value: false, display_priority: 6, name: "enable_filtering_for_id", help_text: "&&mlkey_proto_enable_filtering_help_text", …}
display_priority: 6
help_text: "&&mlkey_proto_enable_filtering_help_text"
hidden: true
label_multilanguage_key: "&&mlkey_enable_filtering_for_id"
name: "enable_filtering_for_id"
value: false
__proto__: Object

typeof(design_element)
"object"

回复:如何创建这些对象的问题 - 需要一段时间才能确认,但它应该使用类似的调用来创建

Object.create(element_structure.StaticTextField,{label_multilanguage_key:{value:ML_KEYS.first_name},name:{value:"first_name"}})

如果是这样的话,不可枚举的行为是否可能?或者对象初始化中是否存在明显的错误?

最佳答案

Was there obviously a screw-up in the object initialization?

是的,使用 Object.create使用属性描述符(如 Object.defineProperties )创建 non-enumerable properties by default 。我建议使用Object.assign如果您不想做任何特殊的事情,则可以使用第二个参数:

Object.assign(Object.create(element_structure.StaticTextField), {
label_multilanguage_key: ML_KEYS.first_name,
name: "first_name"
});

关于javascript - "for var in"访问 JS 对象返回所有内容*但*自己的属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54330620/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com