先日 JavaScript についてダラダラと調べた記事を公開したところ、せんせー方よりご指導賜りましたヽ(・ω・)ノ
我らがポス takkyun せんせーからは、「:」 は「連想配列」ではなく、例えば {property: hoge} とあったとき property はラベルみたいなもの、との指摘をいただきました。
お忙しいところわざわざ声をかけてくださってありがとうございました!
心の故郷 nic せんせーからは、JavaScript はうまくいってるかい?と気にかけていただき、ここぞとばかりに前述の記事を見てもらって謎はほぼ解決!ありがとうございました!
以下、謎解きと私のアホっぷりの記録(´・ω・`)
サンプルが動かなかった理由
nic せんせーが書いてくれたサンプルがうまく動かなくて、あんまり質問するのも気が引けるからと前回解読を試みたわけですが、動かない原因が判明した!
なんと・・・IRC で会話しながら追加した部分で見落としていた行が・・・!
書くべきものを書いていなかったんだから動かなくて当然でした(´・ω・`)
謎はすべて解けた!
記事中で疑問型だった部分一つ一つ丁寧に答えてくれましたヽ(・ω・)ノ
2008-05-05 IRC のログ nic せんせーの発言より一部抜粋・編集しました。
- $( element ) は from.Element としていないのに from.Element の内容を指している。なんで?
-
checkColorValue: function( element ) { となっているが、これは checkColorValue メソッドに渡された 1 番目の値を element として扱いますよ、という意味。
colorChange.checkColorValue(fromElement) となっていたら、element = fromElement となる。 - if( ? == true ) の太字部分が省略されているのではなかろうか。
-
省略すると ==true で自動的に判断するようになっている。
- 変数「 roll 」は配列で、その配列の一つ一つが連想配列ってこと?
-
正解。一般的に多次元配列といいます。
- this.status = this.status && b? true: false; で、valid はflag.valid( colorChange.asColorNumber( roll[i] ) ); で確認してるけど status は必ず true になるんじゃないの?
-
&& は論理積なので、途中で status が一度でも false になった場合、それ以降は valid が true でも status が false のままなので false となる。
1×1=1 だけど 1×0=0、0×0=0 という考え方だそうです。もし論理積を使っていなかったら、途中で false になっていても roll[i] の最後の行が true だったら true として扱われてしまう!
もー、最後のはガッテンガッテンガッテン!でした。すっきり!
簡潔なサンプルを作ってみよう
最初から複雑 (でもないけどw) な XHTML に適用する JavaScript を書こうとするから難しさが倍増しているのではないかと思い、やりたいことを簡潔に書いた XHTML を用意して骨組みとなる JavaScript を書いてみることにしました。
それがうまく動いたら、CSS を書き換えるリスト の項目を増やして例外処理があれば追加していけば完成するはず!
早速 XHTML は用意したので、また 3 日くらい悩もうと思いますヽ(・ω・)ノ