jQuery - $ .map()和.map()之间的设计不一致?

gsk*_*lee 8 jquery

虽然.map()方法的接口是.map( callback(index, domElement) ),但它是$.map( array, callback(elementOfArray, indexInArray) )$ .map()...有什么想法为什么$ .map()选择将返回的参数放在诸如value-index的顺序中?

Mat*_*all 7

因为API不完善.它开始不一致,但现在修复它将破坏使用的现有代码$.map().


Fel*_*ing 2

如果您研究 jQuery API,您会注意到所有作用于一组选定元素并接受回调的方法(例如.each.html.text等)都将元素的索引作为第一个参数传递,即.map与此处一致。通常,您可以在回调中访问当前元素this,这只是 jQuery 中的常见模式,因此开发人员可能认为将索引作为第一个参数更重要。

另一方面,本机Array.prototype.map方法将元素的值作为第一个参数传递给回调,因此以$.map相同的方式工作似乎是有意义的,因为它应该处理一组通用的项目。