カテゴリー
未分類

クロージャの継承とか

thFlash.gifonEnterFrameにおけるクロージャの継承とかちょっと諸々検証中。ということでメモ。


個人的にクロージャを使う利点としては関数内にコンストラクタとしてローカル変数を設定できるという部分があるのだけど、これを有効的に使うには無名関数以前(return function)のコンストラクタ相当箇所で”this”が定義できる必要がある。ということでめんどくさいけど”call”(もしくはapply)で呼び出す。あとは引数に関数を配列かしたものを叩き込んで多段クロージャ化。ただし各関数に対しての引数の受け渡しに関しては考える必要有。
あと”onEnterFrame”に割り当てる場合は継承は無名関数内で処理する、もしくは1フレームあいてonEnterFrameがロストした後に実行する必要があるっぽい。

function aaa() {
return function () {
ins.onEnterFrame = bbb.call(ins);
};
}
function bbb() {
return function () {
trace(“bbb” + this);
};
}
ins.onEnterFrame = aaa.call(ins);

なんかプログラムの基本とかができてないので正しいやり方なのかさっぱりわかりません(;´Д`)
ま、ちょっととりあえず今の案件で実装して、後日詳細を検証しよっと。

コメントを残す

メールアドレスが公開されることはありません。