Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript &引用;对于“中的var”;访问JS对象会返回所有*但*自己的属性?_Javascript - Fatal编程技术网

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"
});

该属性是如何添加到对象的?并非所有属性都是可枚举的。谢谢请参阅我的编辑。该属性是如何添加到对象的?并非所有属性都是可枚举的。谢谢请看我的编辑。