中有两种方式来访问对象的属性,点操作符或者中括号操作符。

点号后加标识符(静态的)

中括号放字符串,字符串可以是动态的,obj['string'+variable]

如果是静态的还是用点号方便。

 

方括号符号允许使用不能与点符号一起使用的字符:

var foo = myForm.foo[]; // incorrect syntax
var foo = myForm[\"foo[]\"]; // correct syntax

其次,在处理以可预测的方式变化的财产名称时,方括号符号是有用的:

for (var i = 0; i < 10; i++) {
  someFunction(myForm[\"myControlNumber\" + i]);
}

总结:

  • 点符号写入速度更快,阅读更清晰。
  • 方括号符号允许访问包含特殊字符的属性,并使用变量选择属性

 

不能与点符号一起使用的另一个例子是属性名称,它们本身包含一个点

例如,json响应可能包含一个名为的属性bar.Baz

var foo = myResponse.bar.Baz; // incorrect syntax
var foo = myResponse[\"bar.Baz\"]; // correct syntax

 

一般来说,访问对象属性时都使用点表示法,这也是很多面向对象语言中通用的语法。不过在 中,也可以使用方括号表示法来访问对象的属性。

在使用方括号语法时,应该把属性以字符串的形式放在方括号中,如:

alert(person[\"name\"]);                    //gogo
alert(person.name);                        //gogo

从功能上说,这两种方法没有任何区别。但方括号语法有一个优点:可以通过变量来访问属性,如:

var propertyName = \'name\';
alert(person[propertyName]);  //gogo

还有!如果属性名中包含会导致语法错误的字符,或者属性名是关键字或者保留字,也可以使用方括号表示法。如:

person[\'first name\'] =\'gogo\';  //first name包含一个空格

但是!!我们建议使用点表示法,除非必须使用变量来访问属性。

[]方括号访问的属性名时,可以在程序运行时创建和修改属性,点操作符就不行!

eg1:

var addr=\"\";
for(i=0;i<4;i++){
    addr += customer[\"address\"+i]+\'\\n\';
}
收藏 打印