for(var i in object){処理・・・}
なんてのは、よく目にしますが・・・。
for(var i = ['あ', 'い', 'う']; i[0]; i.shift()){ alert(i[0]); }
これでも。i に配列を代入して、i[0] が false を返すようなものではない間、shift で i に代入された配列を削っていきます。ということで、この場合は、あ、い、う、と表示される。
当然。もっと自由に考えれば。
var o = {
v : 2,
fn : function (){this.v = this.v * 2},
en : function (){
if(this.v < 10) return true;
alert(this.v);
}
};
for(; o.en(); o.fn()){}
なんてのも。v : 2,
fn : function (){this.v = this.v * 2},
en : function (){
if(this.v < 10) return true;
alert(this.v);
}
};
for(; o.en(); o.fn()){}
わざわざこんな処理に冗長な例ですが・・・。for 内の処理や条件を外部で、作成・変更できたりと、結構自由に使えます。ただ。やり過ぎると、深刻な混乱を招いたりするので、誰が見ても分かりやすい物にした方が無難かも。
私は遊びで使ったりします。ひょっとしたら嫌う人もいるかもしれない。