Я хочу создать ассоциативный массив:Ассоциативный массив без ToString и т.д.
var aa = {} //equivalent to Object(), new Object(), etc...
, и я хочу быть уверенным, что любая клавиша I доступа будет номер:
aa['hey'] = 4.3;
aa['btar'] = 43.1;
I знаю, что JS не печатает, поэтому я не могу автоматически проверять это, но я могу обеспечить в своем собственном коде, что я только назначаю строки этому аа.
Теперь я беру ключи от пользователя. Я хочу показать значение для этого ключа. Однако, если пользователь дает мне что-то вроде «toString», он вернет функцию, а не int! Есть ли способ убедиться, что любая строка, которую он мне дает, - это только то, что я определяю? Это единственное решение, что-то вроде:
delete aa['toString'];
delete aa['hasOwnProperty'];
и т.д ...
Проблема в том, что он не сработает, если пользователь ввел ключ «hasOwnProperty». – some 2008-12-15 04:15:02
Вы должны использовать `Object.prototype.hasOwnProperty.call (aa, userEnteredKey)` – pottedmeat 2008-12-15 04:17:25