jQuery API中没有索引的.get()的原因?

mae*_*ics 10 javascript arrays jquery

假设我有一个页面可以提取一些像这样的图像源:

<div id="d">
  <img src="foo.gif"/>
  <img src="bar.gif"/>
  <img src="gah.gif"/>
</div>
<script type="text/javascript">
  var srcs = $('div#d > img').map(function(){return this.src});
  // srcs => ['foo.gif', 'bar.gif', 'gah.gif']
</script>
Run Code Online (Sandbox Code Playgroud)

请注意,srcs它不是JavaScript数组,而是类似数组的对象; 我们知道这一点是因为我们可以对选择器返回的对象进行jQuery API调用srcs.constructor != Array.

jQuery API提供了一种.get()方法,当没有参数时,它返回一个"标准"数组.是否有令人信服的理由使用标准数组而不是类似数组的对象,或者仅仅为了完整性而包含此方法?

[编辑]

换句话说 - JavaScript数组和jQuery选择器返回的类数组对象之间有什么区别?

SLa*_*aks 2

它允许您使用 jQuery 没有的标准数组方法,例如push.

特别是,jQuery 对象是不可变的,而数组则不然。