Chrome の拡張機能に取り組んでいますが、Javascript での「for..in」の使用法について疑問に思っています。私が見つけた問題を例で説明しましょう:
タイプの 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 を使用してこのようなことを「文字列化」できることは知っていますが、実際にはなぜそれが起こるのかを理解したいだけです。