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

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

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

原文地址:https://www.cnblogs.com/amiezhang/p/javascript.html