В Javascript, если у объекта есть ключ, который является символом, может ли длина этого ключа когда-либо отличаться от 1? - PullRequest
2 голосов
/ 14 марта 2012

Предположим, у нас есть строка unknownStr с неизвестным значением, которое не undefined и не null.

Предположим, что у нас есть этот код:

var chrArray = [];
var keyValObject = {};
var keyLength;
for (var i = 0; i < unknownStr.length; i++) { chrArray.push(unknownStr[i]); }
for (var i = 0; i < chrArray.length; i++) { keyValObject[chrArray[i]] = "foo"; }
for (var key in keyValObject) { keyLength = key.length; }

IsВполне возможно, что keyLength когда-либо будет иметь значение, отличное от 1?

1 Ответ

2 голосов
/ 14 марта 2012

Да, это возможно и может быть продемонстрировано следующим образом

Object.prototype.longKey = "foo";

Теперь все объекты будут иметь свойство longKey, включая keyValObject. Поскольку вы не ограничиваете значение key в цикле for значением hasOwnProperty, в конечном итоге вы увидите longKey, длина которого больше 1

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...