for ( var property in object )

JavaScriptという言語には昔からなぜか苦手意識を持っているんだけど、まあそんなことも言っていられないわけで。三日坊主にならないようにちょっとずつでも勉強していきたい。で、今日は。
if..elseはCと同じだし、forもCと同じだし、、for..inは知らないので今日はこれを。

for..in
オブジェクトのプロパティの数だけ処理を繰り返します

Perlで言うとハッシュをforeachで回す感じっぽい。
いろんなオブジェクトで試してみたいんで、こういうHTMLを作ってフォームにオブジェクト名を入力して、そのプロパティを表示しようと考えた。

<html>
<head>
<meta http-equiv="Content-type" content="text/html"; charset="utf-8">
<title>オブジェクトのプロパティと値を表示する</title>
<script language="javascript">
<!--
function showProperties(obj) {
    var html = "";
    for ( var prop in obj ) {
        html += prop + " = " + obj[prop] + "<br>";
    }
    document.getElementById('properties').innerHTML = html;
}
// -->
</script>
</head>
<body>

<form name="objectForm" onsubmit="showProperties(this.name.value);return false;">
Object:<br>
<input type="text" name="name" size="40">
<input type="submit" name="submit" value="submit">
</form>

<div id="properties">
</div>

</body>
</html>

Firefoxでwindowって入力してEnterしたらこんな結果になりました。

0 = w
1 = i
2 = n
3 = d
4 = o
5 = w

orz
文字列だからか!
しかもSafariだと動きすらしませんでした(何も起こらない)。
文字列をオブジェクトとして扱う方法ってないんですかね?
というかいきなり挫折しそうだよ。