ちょっと切ない JavaScript の話。
onload で複数の処理を行うために、Observer パターンを使おうと思ったわけです。ファサードになるファンクションを設けるのも良いけど、融通が利きにくいし。
というわけで、document にリスナーオブジェクトを登録&実行したんだけど、これがピクリとも動かない。原因は、document.onload が存在しないこと。何故。じゃあ、body タグに書く onload は何に対応するんだ。色々イジった結果、自作の処理とバインドできる onload は、window オブジェクトのそれだけの模様。
document.writeln(document.onload); // 結果は undefined document.writeln(window.onload); //結果は null (バインド可能)
ちなみに、一番上のスコープで this と書くと、window を指すみたい。ということで、
this.addEventListner("doSomething", lintener1);
this.addEventListner("doSomething", lintener2);
this.onload = this.dispatchEvent(
{type:"doSomething", target:this}
);
こんな形になりました。厄介だ。
Posted by dT by 21:38