- 2008-07-16 (水)
- 技術
Top 10 custom JavaScript functions of all time
こちらの記事は2005年に書かれたものですが、久々にこういったJavaScript関数を見ると先駆者たちはすごいな~と関心させられます。
たとえば、
イベントを追加するaddEventメソッド
ほんといまさらですが、よくできたメソッドだと思います。
今では当たり前かもしれませんが、addEventListenerとattachEventを使ってIEとIE以外を振り分けているのとか、なんかグッときちゃう。
function addEvent(elm, evType, fn, useCapture) {
if (elm.addEventListener) {
elm.addEventListener(evType, fn, useCapture);
return true;
}
else if (elm.attachEvent) {
var r = elm.attachEvent('on' + evType, fn);
return r;
}
else {
elm['on' + evType] = fn;
}
}
よくclass名からエレメントを特定しているけど、これってどうやってるの?という場合には以下、
クラス名から取得できるgetElementsByClassメソッド
結構レトロですが、HTMLタグが引数に設定されていない場合は全体から特定のclass名を持つエレメントを探していますね。
う~ん、これはなかなか重そうだ。
function getElementsByClass(searchClass, node, tag) {
var classElements = new Array();
if (node == null )node = document;
if (tag == null )tag = '*';
var els = node.getElementsByTagName(tag);
var elsLen = els.length;
var pattern = new RegExp('(^|\\\\s)' + searchClass + '(\\\\s|$)');
for (i = 0, j = 0; i < elsLen; i++) {
if (pattern.test(els[i].className)) {
classElements[j] = els[i];
j++;
}
}
return classElements;
}
prototype.jsやjquery.jsを使っているとあんまり気にしないかもしれませんが、ちょっとのぞくとレトロなからくりだったり、関心させられるからくりだったりするのでたまに振り返るのは悪くないかもしれません。
これ以外にも面白い関数が紹介されていますので、是非見てみてくださいな。
【関連する記事】
- (function(){})()の代わりにnew function(){}って方法もあるよ
- canvasを使って波紋が広がるripple.js作りました
- JavaScriptで単体テストをするならQUnitはいかが?
- Newer: Objectへの分割代入って面白い
- Older: jQueryのanimateメソッドの使い方
Comments:0
Trackback:0
- TrackBack URL for this entry
- http://hisasann.com/cgi-bin/mt/mt-tb.cgi/1065
- Listed below are links to weblogs that reference
- ライブラリ製作で使われているレトロなJavaScript関数10個 from HouseTect, JavaScripter Blog

