通過點運算符,您可以訪問不包含空格或特殊字符,從數字開始的單詞(即不能用作例如變量名稱的單詞)的鍵的值,否則您可以獲得任何重試他們喜歡作爲關聯數組中的鍵。
你可以使用任何你想要的鍵,但記住鍵是你放入的字符串表示。澄清 - 將被稱爲toString()。
看:
var myObj = {};
myObj[ 3 ] = "key is 3";
alert(myObj[ "3" ]); //alerts "key is 3" because (3).toString() is "3"
//but an error will thrown when accessing by myObj.3
myObj[ {} ] = "key is {}"
alert(myObj["[object Object]"]) // alerts "key is {}" because ({}).toString() is "[object Object]"
您可以覆蓋toString()
方法,如:
Object.prototype.toString = function(){ return "object"}
a = {};
a[ {} ] = "whatever";
alert(a["object"]); // alerts "whatever" because as now toString() returns "object" from each created object
如果不允許,你會得到一個錯誤。 – 2012-01-02 08:38:37