Za pomocą operatora kropki można uzyskać dostęp do wartości z klawiszy, które nie zawierają znaków spacji lub znaków specjalnych, słów rozpoczynających się od numeru (czyli tych, które nie mogą być używane jako np. Nazwy zmiennych), w przeciwnym razie można uzyskać dowolne odwołanie do nich jak klucze w tablicy asocjacyjnej.
Możesz użyć jako klucza, jak chcesz, ale pamiętaj, że klucz będzie ciągiem reprezentacji tego, co wstawisz. Klarowanie - zostanie wywołane doString().
Look:
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]"
Można zastąpić toString()
metody, np
Object.prototype.toString = function(){ return "object"}
a = {};
a[ {} ] = "whatever";
alert(a["object"]); // alerts "whatever" because as now toString() returns "object" from each created object
Gdyby nie było dozwolone, to pojawi się błąd. –