MochiKitのIteration系メソッド(map,filter,forEach...)使ってると関数スコープが違うのでiterableの処理にthis使うとクラスメンバにアクセスできなくなる
これはMochiKitというよりもJavaScriptで無名関数のコールバックを登録するような場合に起きやすい問題だと思います。これが起こりやすいのは一般的にはイベントハンドラくらいだと思いますが、ループ処理実行にMochiKitのmapとか多様してるとハマります。
例えばクラスメンバ列挙は普通以下のような感じですが、
for ( var i in this ) { print this[i]; }
MochiKit流に
forEach( this, function( i ) { print this[i]; });
とするとthis[i]のthisはiを処理する無名関数となるのでアクセスできません。thisをループ処理の外に一時保存してその変数を参照する必要があります。
var self = this; forEach( this, function( i ) { print self[i]; });
Sortable Tables from Scratch with MochiKitでもこの方法がとられています。この当たりの基礎的な知識がなかったので最初見たときはself経由とthis経由でアクセスを使い分けてる理由がわかりませんでした(Pythonの真似してるだけかと思っていた)。
MochiKit使ってないなら大丈夫、かもしれませんがFirefox 1.5のArrayオブジェクトにIteration系メソッドが追加されたので、覚えておくといいことあるかもしれません。