JavaScript Diary

出来そうで出来なそうで出来た [ 2001/08/23 ]
ガーベジコレクションがどういうふうに行われているのか僕は分かりませんが、とりあえず使わなくなったメソッドなどは delete しておくようにしています。delete すればいつかは開放されるだろうと思っているからです。で、delete するタイミングが問題です。
var obj = new Object();
obj.init = function(){ ... };
この init 関数は初期化のための関数という意味ですが、1回しか使用しません。このような関数は使用したら即削除(delete)します。普通は↓のように書くと思います。
obj.init();
delete obj.init ;
この2行で1セットの処理です。これが再利用するようなオブジェクトなら尚更、どうせならこの一連の処理を一つにまとめてしまいたいものです。つまり、呼び出したあと一緒に自分自身も削除することです。
ということでメソッド内で delete してみました。
var obj = new Object();
obj.init = function(){
    ...
    delete this.init ;
};
JavaScript ってどんな制御構造なんでしょ(笑)