我有一个这样的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 的闭包替换为类似于第二个参数(由 _.partial 生成的函数)之类的东西?
明确一点:我想要的是一种声明“排序顺序”而不将其包装在函数中的方法。所以它看起来像:
_.memoize(
// line below doesnt work, just to clarify what i want :-)
_.sortBy( scope.entries, _.result( scope, 'order')),
_.partial( _.result, scope, 'order')
)