js的点表示法和方括号表示法
最近发现了一个很好玩的js特性,就是任何可以用点表示法的语句,都可以同样用方括号表示法表示出来,就例如一下语句,三句都是可以实现的:
document.body.innerHTML="test1"; document.body["innerHTML"]="test12"; document["body"]["innerHTML"]="test123";
一般来说,访问对象属性时都使用点表示法,这也是很多面向对象语言中通用的语法。不过在JavaScript中,也可以使用方括号表示法来访问对象的属性。
var person = { name:'david' }
在使用方括号语法时,应该把属性以字符串的形式放在方括号中,如:
alert(person["name"]); //david alert(person.name); //david
虽然点表示法看起来更简洁,在一般情况下是优先选择的方法,但是方括号表示法有着点表示法没有的好处,可以通过变量来访问属性,例如:
var addr=""; for(i=0;i<4;i++){ addr += customer["address"+i]+'\n'; } function addStock(portfolio,stockname,shares){ portfolio[stockname]=shares; }
但是!!我们建议使用点表示法,除非必须使用变量来访问属性。