JavaScript ソボクな疑問

例えばフォームに値を入力するスクリプトを書いたとします。
そのフォーム部分は

<form name = “form”>
<input type=”text” name=”box1″ ・・・>

とあったとしましょう(要するにフォームの名前はformで、テキストボックスの値はbox1)。

このbox1に値を代入するとき、スクリプトは

form.box1.value = “hogehoge”

になりますよね。これは分かります。オブジェクトとプロパティの間は「.(ドット)」で区切られるのがルールですから。
でも、ボックスに割り当てられているナンバリング部分をfor文で処理した場合は、その表記が少し異なります。

for (i = 1; i <=5; i++){
var t-box = “box” + i;

というふうに、boxの後にくるナンバリングをforで自動的に補うようにすると、先の値代入の部分はなぜか

form[t-box].value = “hogehoge”

になるみたいなんです。
ってゆーか、なるんです。
なにが変な感じがするかって?
そりゃ、formと[box]の間に「.(ドット)」が入らないんです。
普通に考えたら

form.[t-box].value = “hogehoge”

になりそうに思いませんか?
だって、オブジェクト・プロパティ間はドットでつなぐのがルールなんじゃ・・・(~_~;;
でもルールに従ってこの表記にすると値の代入が行われ無いんですねー。なんでだ?

・・・教えて、エロい人!!

boota

いろんなモノに、いろんな意味で、ヲタ。なのかも?

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)