prototype.js 1.5 からの新機能 Template の使い方

JavaScript での変数を使った文字列の作成は何かとめんどくさいですね。prototype.js では 1.5_pre0 から Template という簡易テンプレートとして使えるクラスが加わりました。相変わらずドキュメントはソースと test 嫁なので簡単な使い方を紹介します。
まずは Template となる文字列を new Template で作ります。Template のリテラルは #{}です*1 。

var t = new Template('#{foo}, #{bar}!');

次に作成した Template インスタンスの evaluate 関数を呼び出し、引数として Hash(Object) を渡します。

t.evaluate({
  foo: 'hello',
  bar: 'world'
});
//  hello, world!

もしテンプレートを使い回さず、一度限りの文字列置換的な用途で使いたい場合は、

new Template('#{foo}, #{bar}!').evaluate({
  foo: 'hello',
  bar: 'world'
});
// hello, world

と使うこともできます。同じパターンを使い回すときは Template のインスタンス作って使い回すと、結構訳に経つこともあるかもしれませんね。

Ajax 実装のための基礎テクニック
増井 雄一郎 深津 貴之 川崎 有亮 台場 圭一 WINGSプロジェクト 佐藤 真介
技術評論社 (2006/03/23)

*1:Template のコンストラクタの第二引数に regexp を渡すことで変えられます