zjsに手を加えました.ファイルはhttp://github.com/takehiko/zjsより取得可能です.http://wakkzen.homelinux.net/zjs/とhttp://www.wakayama-u.ac.jp/~takehiko/zjs/も,最新版にしました.
今回の修正では,名前空間を導入して,これまでグローバル変数・グローバル関数として定義していたのを押し込めました.それにより,グローバルな名前はzjsのみになっています.
zjs一つの中になんでもかんでも押し込めるのはよくないので,以下のようにグループ分けをしています.
- zjs.config:設定情報
- zjs.clock:時間管理
- zjs.key:キーイベント
- zjs.board:パネル
- zjs.bell:ベル
- zjs.screen:時間その他の表示
さらに階層を加えているところもあります.これまでの
var timeColorLabelArrayArray = new Array(timeColorLabelArray1, timeColorLabelArray2, timeColorLabelArray1);
timeColorLabelArray = timeColorLabelArrayArray[timeColorLabelArrayIndex];
は
var prop = zjs.screen;
prop.color.base = new Array(zjs.config.colorArray1, zjs.config.colorArray2, zjs.config.colorArray1);
prop.color.array = prop.color.base[prop.color.index];
に変わっています.
しかし,現状のコードは,すっきりしているとは思えません.匿名関数が不自然に見えること.例えばzjs.config.initとしたい関数の中で,zjs.config内のプロパティにアクセスするのにzjs.config.が不可欠なこと.zjs.config.ringModeなどをdeleteしていること,などなど….より良い記述方法を,探ることにします.
小さな進展もあります.