Строка Javascript вместо ожидаемого объекта - PullRequest
0 голосов
/ 18 февраля 2012
var x = {};
x.a = {y:5};
x.b = {z:6};

for (prop in x) console.log(typeof prop); // returns "string". Why not "object"?

Разве это не должно возвращать объект?Как мне обойти это?

Ответы [ 4 ]

1 голос
/ 18 февраля 2012

все эти ответы верны, но, возможно, вы увидите это лучше с исправленным примером:

var x = {};
x.a = {y:5};
x.b = {z:6};

for (prop in x) console.log(typeof prop); // returns "string"
for (prop in x) console.log(prop); // returns "a", then "b"
for (prop in x) console.log(typeof x[prop]); // returns "object"
for (prop in x) console.log(x[prop]); // returns {y:5}, then {z:6}
1 голос
/ 18 февраля 2012

Если вы выведете реквизиты сами, вы увидите, что они являются ключами: «a», «b».

0 голосов
/ 18 февраля 2012

Измените свою последнюю строку на

for (prop in x) console.log(typeof x[prop]);

Часть x[prop] берет имя свойства, называемое prop (оно имеет тип string), и возвращает свойство x.prop, которое в случае a и b возвращает объект.

0 голосов
/ 18 февраля 2012

Возвращает имя свойства.

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