大多数具有枚举器方法的库(我认为甚至是原生 JavaScript)都允许context
为迭代器传递 a 。
function reduce(iterator, memo, context){
this.each(function(item, idx, list){
memo = iterator.call(context, memo, item, idx, list)
});
return memo;
}
问题是为什么什么时候bind
可以轻松提供相同的功能?
stooges.reduce(function(memo, stooge){
...
}, context) // as argument vs...
stooges.reduce(function(memo, stooge){
...
}.bind(context))
这是暂时存在的东西,因为bind
并非在所有平台上都可用吗?或者仅仅是因为 ing 的开销call
比bind
ing 少?我总是读到,函数采用的参数越少越好。也就是说,一个函数取 0 参数比一个取 1 好于一个取 2,等等。