javascriptで連想配列とオブジェクト
javascriptのクラスについて学んでいましたがいまいちわからんー;
しかし連想配列が存在するのを初めて知る事ができましたw
オブジェクト指向な javascriptなんて知らなかったので、いろいろ面白い。。
しかしまだクラスって概念、ちゃんとわかってないのでむやみやたらに使うのはよした方がよさそうだ。
いろいろ試しては見るけど。
ちなみにダイヤモンドゲームの設定のやつで試してみたら、なんだか何が良いんだかわかんないようなものになってしまった;
書き方の把握と練習と言ったところだろうか。。
さて、今日の収穫はクラスの書き方と連想配列使えること。
連想配列は、オブジェクトだよってこと。
これを、以前からちょっと試してみたかったことで実践してみました。
プログラム的には、「javascriptでスロットを作る」というもの。
goボタンで回転してそれぞれのリールに対応するボタン押したらそれぞれのそのリールが止まる。ってとこまで作りました。
完成させる気はあまりなさそう(死)だけど。。
で、そこにスロットを止める関数として、
ていうのがありました。
//左を止める
function leftStop() {
left = 0;
leftflg = 0;
}
//真ん中を止める
function centerStop() {
center = 0;
centerflg = 0;
}
//右を止める
function rightStop() {
right = 0;
rightflg = 0;
}
これはそれぞれに対応するストップボタンが押されたら、これらの関数が呼ばれます。ボタンの方で呼ぶ関数を指定しています。
同じ様なことしてるのに3つもあるのがなんだかいやでした。
かといって配列に入れても意味わからなくなるし。。
まぁ他にもやり方あるかもしれないけど。。。
で、とりあえず連想配列を使ってこれを1個にしてみました。多分こんな使い方よろしくない気がするけれど・・・。
みただけじゃ何してんだかわからないものね。この関数。
//止める
function Stop(place) {
flg[place] = 0;
stop[place] = 0;
}
とりあえず、それぞれに対応するストップボタンが押されたら、この関数が呼ばれます。
placeはそれぞれ対応する'left'とか'center'とかが引数としてきます。
flgとかの初期値はそれぞれ、
ってなってます。
flg = {'left':0,'center':0,'right':0};
なので、それぞれ'left'などを添字にしてあげるとそこの値を見に行ってくれます。
placeを数字で管理するのより全然わかりやすい!と思うのだけれど、これじゃああまり変わらないのかなぁ?
とりあえずオブジェクトっぽく、
こんな感じで書いてもOKでした。
//止める
function Stop(place) {
flg.place = 0;
stop.place = 0;
}
なるほどって思ったけど、これ、使い方的に逆じゃないと意味なくない?って、ちょっと思った(何
leftってオブジェクトにflgとかcountとかstopを持たせるべきですよね;
う〜んまだ難しいな。。
とりあえず練習でした。