Я работаю над расширением для Chrome, и мне просто интересно, как использовать «for..in» в Javascript. Позвольте мне объяснить проблему, которую я нашел, на примере:
Предположим, у меня есть volatile объект типа {prop1: "foo", prop2: "bar", ...}
. Я хочу сохранить этот объект в строке с некоторым синтаксисом, например, "prop1=foo;prop2=bar;..."
. Вот код, который я использовал:
var fun = function(data) {
var str = "";
for (var i in data) {
str += i + "=" + data[i] + ";";
}
return str;
};
log(fun({x:1, y:2}));
Этот fun
возвращает следующую строку: undefinedx=1;y=2;
.
Я действительно не понимаю, почему он следует такому поведению. Я знаю, что могу использовать JSON, чтобы «сформулировать» что-то подобное, но на самом деле я просто хочу понять, почему это происходит.
;
в конце инициализацииfun
, но вставка точки с запятой маскирует это. ;) - person cdhowie   schedule 24.07.2013