【Underscore.js】_.eachを読んだ
jashkenas/underscoreの_.eachを読んだ。
概要
第二引数で指定した関数に第一引数の配列やオブジェクトの各要素を引数として渡して、実行する。
var x = _.each([1,2,3], function(num){ console.log(num); }); // 1 // 2 // 3
_.each = _.forEach = function(obj, iteratee, context) { iteratee = optimizeCb(iteratee, context); var i, length; if (isArrayLike(obj)) { for (i = 0, length = obj.length; i < length; i++) { iteratee(obj[i], i, obj); } } else { var keys = _.keys(obj); for (i = 0, length = keys.length; i < length; i++) { iteratee(obj[keys[i]], keys[i], obj); } } return obj; };
optimizeCbはcontextがundefinedで、iterateeが関数だとiterateeを返す。 一番上のサンプルコードだと、console.logをする無名関数を返す。
参考