访问对象属性的点表示法和方括号表示法的区别

var person = {
    name:'gogo'
}

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

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

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';
}

eg2:

function addStock(portfolio,stockname,shares){
    portfolio[stockname]=shares;
}

参考:
1. javascript高级程序设计
2. javascript权威指南

你可能感兴趣的:(javascript,js原理)