カテゴリー
未分類

クロージャの継承とか

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);

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

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です