JavaScript のライブラリ。

http://mochikit.com/

ドキュメント

デモ用インタープリタ

入手

リリース版はちょっと古いので、Subversion リポジトリから取ってくるのが いいでしょう。

svn co http://svn.mochikit.com/mochikit/trunk mochikit

MochiKit.Base

比較関数や関数型プログラミングのための関数など。 MochiKit の基本部分。

compare

比較

>>> [1, 2] == [1, 2]
false
>>> compare([1, 2], [1, 2])
0

map

写像

>>> map(function(e){ return e + e }, [1 ,'3', 5])
[2, "33", 10]

compose

関数合成

>>> square = function(e){ return e * e }
function (e) { return e * e; }
>>> double = function(e){ return e * 2 }
function (e) { return e * 2; }
>>> compose(square, double)(3)
36
>>> compose(double, square)(3)
18
  • repr

開発者向けの文字列表現

>>> repr([1, '2', null])
"[1, \"2\", null]"

オブジェクトに repr() か __repr__() が実装されているとそれを使う。

MochiKit.Iter

Python 風イテレータ

わざとらしい例

forEach(takewhile(partial(operator.gt, 5), count()), function(e){ alert(e) })

MochiKit.DOM

DOM 用 API

HTML の主要タグは簡単に作成できる関数が用意されている。

例:

['a', 'b', 'c']

から

<ul>
  <li>a</li>
  <li>b</li>
  <li>c</li>
</ul>

を作り、

の中に追加したい。

var ul = UL(null, map(function(e){ return LI(null, e); }, ['a', 'b', 'c']));
appendChildNodes('foo', ul);

MochiKit.Signal

イベント関連

connect

id="foo" の要素の onclick イベントにハンドラを結びつける。

connect('foo', 'onclick', function(e){ alert('clicked') });

一般のオブジェクトに対して

a = {};
connect(a, 'fire', function(e){ alert('fired') });
// ...
signal(a, 'fire');

MochiKit.DragAndDrop

ドラッグアンドドロップとかできます。

http://mochikit.com/examples/draggable/index.html

MochiKit.Visual

ビジュアルエフェクト系

MochiKit.Async

非同期処理

var d = new Deferred();
d.addCallback(function(){ alert('foo') });
d.callback();

addCallback する時点で既にコールバックされていた場合、 addCallback するとすぐにコールバック関数が実行される。

var d = new Deferred();
d.callback();
d.addCallback(function(){ alert('foo') });

doSimpleXMHttpRequest

var d = doSimpleXMLHttpRequest("http://example.com/foobar");
d.addCallback(function(xhr){ ... });
  • このエントリーをはてなブックマークに追加
エンジニア募集中です!

私たちは新しい仲間を募集しています。