Javascriptのアンチジュゲム関数:メモ
<script type="text/javascript">
function $elm(id){return document.getElementById(id);}
function $value(id){return $elm(id).value;}
</script>
Javascriptのアンチジュゲム関数(anti-jugemic-name-function)
Javascriptでは何度も何度も繰り返し繰り返し繰り返し、長ったらしい
document.getElementById('xxx')
を記述することになります。(昔はxxx.でアクセスできたのに。。。)
このような固定的で無意味に長い名前、表現を「寿限無表現・寿限無名」と称します。
これはとんでもなく馬鹿げています。prototype.jsなどでは$('xxx')で アクセスできるようになっています。
使用するライブラリにある場合はよいのですが、これだけのために ライブラリを取り込むのも馬鹿げています。
そこで、関数をそれぞれのHTMLにコピペし、使うようにします。(もちろん 毎回書いても良いのですが、コピペの方が確実です)
次は使い方の例です。 ♪バッハ:無伴奏コントラバスのためのパルティータ第1番の記述です。
<script type="text/javascript">
function $elm(id){return document.getElementById(id);}
function $value(id){return $elm(id).value;}
</script>
<form>
<input type=button value="ヘ音記号"
onMouseDown="$elm('fnote').style.display='inline';$elm('cnote').style.display='none'">
 
<input type=button value="ト音記号"
onMouseDown="$elm('cnote').style.display='inline';$elm('fnote').style.display='none'">
</form>
念のため補足しておくと、
Javascriptでは名前に'$'を使うことができます。A~zの英字と同じ扱いですので
$()、$$()、A$B$()なども許されます。
他にも簡略名とすべきものはありますが、なによりこのdocument.getElementById('xxx')は
ジュゲムさが突出していますので、余程の原理主義者以外は、ここに示したような現実的アンチジュゲム
処理を行うべきだと考えています。
本当は「標準的に皆こうする」という形が固まってくるといいのですけどね。
補足:HTMLロード完了後に動かしたい関数の登録
HTMLロード完了後に動かしたい関数は次のように登録できます。
<script type="text/javascript"> function start(){ // なんだかんだ } try{ window.addEventListener("load",start,false); }// 起動呪文 catch(e){ window.attachEvent("onload",start); } // 起動呪文 </javascript">
ジュゲム名・jugemic name
◇HTMLのTABLEの色を1行毎に変える方法に書いていたことを引用します。
無用に長い名前、あるいは長い組み合わせという意味です。
例えば、PrintWriter pw = new PrintWriter( new BufferedWriter( new OutputStreamWriter( new FileOutputStream( new File(fileName) ,append) ,charSet)) ,auto_flush);のような長ったらしくかつ固定的で毎回書かなければならない馬鹿馬鹿しい名前並びに対してWAO! It's too jugemic!!!!というように使います。ウソです。しかし長い名前程分かりやすくて間違いがないという幻想 によりコードが著しく見づらくなっている傾向は決して 望ましいものではありません。
何にも考えず長い名前にしておけばよいというのは間違って います。
とはいえ$(id)程短くするのは極めて限られた状況でのみ 許されるものであることも忘れてはなりません。document.じゅげむじゅげむ.ごこうのすりきれ.かいじゃりすいぎょのすいぎょうまつ うんぎょうまつふうらいまつ.くうねるところにすむところ.やぶらこうじのぶらこうじ. パイポパイポ.パイポのシューリンガン.シューリンガンのグーリンダイ.グーリンダイ のポンポコピーのポンポコナーの.getElementの.ちょうきゅーめいの.byId("table1") がテーブルオブジェクトを返したところ。。。タイムアウトしていた。
修正履歴
#2021/09/26
$Eだったものを#elmに変更
$value追加(valだとvarと発音が完全に一致し不適切と判断しvalueにした)
視認性を高めるため、黒バック化
冒頭から「HTMLロード完了後起動設定」削除
| 固定リンク

