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的情况)。