Underscore.jsの1.6.0→1.7.0の_.template()の非互換な変更

JavaScriptエンジニア養成読本のBackbone.jsのサンプルコードが動かなくてなんでだろーと調べてたら著者のページに修正があった。
JavaScriptエンジニア養成読本Backbone.js特集の訂正 - text.ykhs.org
どうやらUnderscore.jsの1.6.0→1.7.0で_.template()が常にコンパイル済みのテンプレートを持った関数を返すようになったらしく

var html = _.template(htmlTemplate, data);

ではなくて

var compiled = _.template(htmlTemplate);
var html = compiled(data);

とするのが正しいそうです。