Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/385.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:如何访问名称为动态的属性?_Javascript - Fatal编程技术网

Javascript:如何访问名称为动态的属性?

Javascript:如何访问名称为动态的属性?,javascript,Javascript,可能重复: 下面的代码检查javascript对象form_errors是否具有由this.name指定名称的属性,其中this表示文本输入 if (form_errors.hasOwnProperty(this.name)) { alert(form_errors.<this.name>; } if(form_errors.hasOwnProperty(this.name)){ 警报(表单错误)。; } 如何访问属性而不硬编码属性名称,而是以通用形式保留此属性名称?谢谢。

可能重复:

下面的代码检查javascript对象form_errors是否具有由this.name指定名称的属性,其中this表示文本输入

if (form_errors.hasOwnProperty(this.name)) {
  alert(form_errors.<this.name>;
}
if(form_errors.hasOwnProperty(this.name)){
警报(表单错误)。;
}
如何访问属性而不硬编码属性名称,而是以通用形式保留此属性名称?谢谢。

使用括号:

form_errors[this.name]

您可以通过传入带有名称的字符串来访问对象的任何属性。例如,
foo.bar
foo['bar']
具有相同的结果。

请记住
foo['i-like-hyphens']
只能用括号访问。实际上,在javascript中,所有内容都是数组。甚至JSON都是具有不同数据类型的数组。所以大括号是最好的选择。@阿披舍克,你错了。JS中的所有内容都是
对象
,碰巧
数组
对象
的一种特殊形式。试试
typeof[]
在控制台中。@abhishek,除了类型层次结构备注之外,我想说的是,是使用括号还是点表示法是一个环境问题。在静态访问的情况下,使用点表示法短3个字符,并且不意味着任何字符串(这对重构更为友好),所以在我看来,最好坚持到不可能的地步(比如丹尼斯提到的情况,或者OP的情况)。