私はこのようなJavaScriptモデルを持っています:
var scope = {
entries : [
{ label : 'one', value : 'first entry'},
{ label : 'two', value : 'second entry'},
{ label : 'a', value : 'x'}
],
order : 'label'; // may also contain 'value'
}
今、私は order の値に応じてエントリを並べ替え、それもキャッシュしたいと考えています。
私はクロージャを使用する方法を知っています:
_.memoize(
function() {
return _.sortBy( scope.entries, scope.order);
},
_.partial( _.result, scope, 'order')
)
_.sortBy を呼び出すクロージャーを、2 番目のパラメーター (_.partial によって生成される関数) のようなものに置き換えることは可能ですか?
明確にするために:私が欲しいのは、関数にラップせずに「ソート順」のものを宣言する方法です。次のようになります。
_.memoize(
// line below doesnt work, just to clarify what i want :-)
_.sortBy( scope.entries, _.result( scope, 'order')),
_.partial( _.result, scope, 'order')
)