Javascript &引用;对于“中的var”;访问JS对象会返回所有*但*自己的属性?
我在这里不知所措。有人能解释一下下面的控制台输出是如何可能的吗?为什么在中用Javascript &引用;对于“中的var”;访问JS对象会返回所有*但*自己的属性?,javascript,Javascript,我在这里不知所措。有人能解释一下下面的控制台输出是如何可能的吗?为什么在中用对var p进行迭代时,标签\u多语言\u键没有显示 > Object.getOwnPropertyNames(design_element) (6) ["label_multilanguage_key", "value", "display_priority", "name", "help_text", "hidden"] > for (var p in design_elemen
对var p进行迭代时,标签\u多语言\u键
没有显示
> 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"
Re:关于如何创建这些对象的问题-需要更长的时间才能确认,但应该使用类似于
Object.create(element_structure.StaticTextField,{label_multilanguage_key:{value:ML_KEYS.first_name},name:{value:"first_name"}})
如果是这种情况,是否可能出现不可枚举的行为?或者对象初始化过程中是否出现了明显的错误?尝试检查循环中的hasOwnProperty
:
for (var p in design_element) {
if (design_element.hasOwnProperty(p)) console.log(p);
}
尝试检查循环中的hasOwnProperty
:
for (var p in design_element) {
if (design_element.hasOwnProperty(p)) console.log(p);
}
对象初始化中是否有明显的错误
是的,与属性描述符(如)一起使用将创建。如果您不想做任何特殊的事情,我建议使用以下参数代替第二个参数:
Object.assign(Object.create(element_structure.StaticTextField), {
label_multilanguage_key: ML_KEYS.first_name,
name: "first_name"
});
对象初始化中是否有明显的错误
是的,与属性描述符(如)一起使用将创建。如果您不想做任何特殊的事情,我建议使用以下参数代替第二个参数:
Object.assign(Object.create(element_structure.StaticTextField), {
label_multilanguage_key: ML_KEYS.first_name,
name: "first_name"
});
该属性是如何添加到对象的?并非所有属性都是可枚举的。谢谢请参阅我的编辑。该属性是如何添加到对象的?并非所有属性都是可枚举的。谢谢请看我的编辑。