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