この日記は私的なものであり所属会社の見解とは無関係です。 GitHub: takahashikzn

lodash-3.0がリリース

f:id:takahashikzn:20150122225753p:plain


つい数時間前にlodash-3.0.0がリリースされました。
一つ前のバージョンと概ね互換性はあるようですが、非互換の修正もあります。


自分に関係のあった箇所は以下の通り。

  • _.templateの戻り値が変更
  • _.chainが遅延評価されるように


今のところこれだけですが、他に何かあれば追記します。

_.templateの戻り値が変更

これまでは、

_.template("foo is <%=foo%>", { foo: 42 }) === "foo is 42"

だったのですが、lodash-3.0.0からは

_.template("foo is <%=foo%>")({ foo: 42 }) === "foo is 42"

です。

templateメソッドは部分評価された関数(→コンパイル済みのテンプレートオブジェクト)を返すようになりました。

_.chainが遅延評価されるように

これまでは、

// 注:   _(...)は_.chain(..)と同じ
_([1, 2, 3]).each(function(x) {
    console.info(x);
});

で動いていたコードは、lodash-3.0.0からは

_([1, 2, 3]).each(function(x) {
    console.info(x);
}).value(); // valueでなくても、戻り値が値になるメソッドなら何でも良い

とする必要があります。

遅延評価なので、値が必要になるまで実際の処理は実行されません。