Enum.ONE_TYPE = new Enum( );
Enum.TWO_TYPE = new Enum( );
function Enum( ){
this.name = 'Enum';
}
Enum.prototype.toString = function( ){
return '[object ' + this.name + ']';
}
var objects = {};
objects[Enum.ONE_TYPE] = 'one';
console.log( typeof objects[Enum.TWO_TYPE], // string
typeof objects['string'], // undefined
typeof objects[{}] ); // undefined
Почему на несуществующий ключ
Enum.TWO_TYPE возвращается
string?
Целый день ушло на выявление причины, час на выявление проблемы и только я задал вопрос, как мне кажется, нашел ответ.
Ведь ассоциативный массив хранит ключи в string формате и для него все объекты одинаковые, если у них toString одинаков. Правильно?