Home > 技術 > ライブラリ製作で使われているレトロなJavaScript関数10個

ライブラリ製作で使われているレトロなJavaScript関数10個

Top 10 custom JavaScript functions of all time

こちらの記事は2005年に書かれたものですが、久々にこういったJavaScript関数を見ると先駆者たちはすごいな~と関心させられます。

たとえば、

イベントを追加するaddEventメソッド

ほんといまさらですが、よくできたメソッドだと思います。
今では当たり前かもしれませんが、addEventListenerattachEventを使って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を使っているとあんまり気にしないかもしれませんが、ちょっとのぞくとレトロなからくりだったり、関心させられるからくりだったりするのでたまに振り返るのは悪くないかもしれません。

これ以外にも面白い関数が紹介されていますので、是非見てみてくださいな。

Top 10 custom JavaScript functions of all time

【関連する記事】

Comments:0

Comment Form

コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。

Remember personal info

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

Home > 技術 > ライブラリ製作で使われているレトロなJavaScript関数10個

Tag cloud
Categories
月別アーカイブ
このブログについて
author:hisasann

description:フリーランスで仕事しているプログラマーです。
最近はJavaScript、Rails、Java(Struts+Spring)なんかをいろいろといじっています。
今やってみたいのはFlashやActionScriptかな。
また誕生して半年になる子供の成長を見守るパパでもあります。

日々の日記 :

他に運営しているブログ:

利用しているWebサービス :
最近のコメント
Powered by
Powered by
Movable Type 3.35

Page Top