■ 本メモ
三才ブックス、2007
これは買おうかな。
■ティアズマガジン
わたしはまだ確認していないのだが、ティアズマガジン(コミティアのカタログ)がもう出てるらしい。すでに入手した人の話によると、サークル紹介のトップに載っているそうだ。「アーカイブ騎士団」というサークル名にして本当によかったと思った。
■宗教万歳
なんというか「おれちょう個人主義ですげー、愚民扇動されすぎでやべー」みたいな発想があまり好きではない。あまりうまく言えないが。
その延長線上で「まるで宗教だ」みたいな言いぐさが苦手。「は? 宗教上等宗教万歳だろ。てゆうか宗教無しで生きていけるわけねーだろ」と思ってしまう。
思っていることを、あまりうまく書けなかったのでここでやめる。
■ JavaScriptでeach
たまに無性に"array.each"と書きたくなるので実装方法をメモしておく。prototype.jsに入ってるやつ。
arr = ["a","b","c"];
for(var i, leng=arr.length; i<leng; i++)
document.write(arr[i]);
↑こう書いていたのが、
["a", "b", "c"].each(function(i){
document.writet(i);
});
↑こういう風に書けるようになる。
prototype.js v1.4の該当箇所はこんな感じ。
var $break = new Object();
var $continue = new Object();
var Enumerable = {
each: function(iterator) {
var index = 0;
try {
this._each(function(value) {
try {
iterator(value, index++);
} catch (e) {
if (e != $continue) throw e;
}
});
} catch (e) {
if (e != $break) throw e;
}
}
}
Object.extend(Array.prototype, {
_each: function(iterator) {
for (var i = 0; i < this.length; i++)
iterator(this[i]);
}
}
あーなんかむずかしいなー。
eachと_eachが分かれているのは、prototype.jsでは、Enumerableクラスをまず抽象クラスとして定義し、それをArrayやHashなどのクラスで継承しているため(これはRubyのまね)。
$continue, $breakの部分は、continue, breakにあたる操作を"throw $break""throw $continue"で実現できるようにするためらしい。
でも、とりあえず、上のような書き方がしたければ、簡易的に
Array.prototype.each = function(iterator){
for(var i=0, leng=this.length; i < leng; i++)
iterator(this[i]);
}
と書くだけでよいはず。
コメント(1)
コメントする
トラックバック(0)
このブログ記事を参照しているブログ一覧: 雑記2007年11月6日(火)
このブログ記事に対するトラックバックURL: http://www.at-akada.org/mt/mt-tb.cgi/421

Мечтаю написать что-то под таким постом, выразить свое мнение... но писать банальности или односложные фразы - желания нет, измышления же какие-либо здесь будут неуместны... потому что всё уже сказано.
』 (2009/03/28 13:34)Поэтому я скажу просто - http://optishape.ru/ - Гербалайф - сайт помощи