プログラムを上から下に順番に記述しても、それが必ず順番通りに実行されるわけではありません。
簡単な処理を作るときには問題になりませんが、Aを実行した結果によってBまたはCを実行する、みたいな処理がある場合、Aの実行が終わるまで待ったずに条件分岐を行ってしまう、というようなことがよく起こります。
これを解消するためにコールバックを使うのですが、扱いがけっこう面倒です。
そこでJSDeferredが登場します。
http://cho45.stfuawsc.com/jsdeferred/doc/intro.html
Deferを辞書で調べたところ、読みは「ディファー」、意味は「延期された; 繰延べ扱いの; 据え置きの」と出ました。
これは公式サイトのサンプルコード。
next(function () {
alert("Hello!");
return wait(5);
}).
next(function () {
alert("World!");
});
こう書くことで「Hello!(5秒停止)Worlds!」という実装ができます。すばらしい!
javascriptはめざましい進化を遂げて活躍の場も増えており、コードの量も増え、処理も複雑化してきているので、こういうライブラリはコーディングする者にとって本当にありがたいです。