Скажем, что у меня есть страница, которая извлекает некоторые источники изображений, например:
<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>
Обратите внимание, что srcs
не является массивом JavaScript, а представляет собой объект, похожий на массив; мы знаем это из-за того, что мы можем создавать вызовы API jQuery для объектов, возвращаемых селектором, и тот факт, что srcs.constructor != Array
.
API jQuery предоставляет метод .get()
, который при отсутствии аргумента возвращает "стандартный" массив. Есть ли веская причина использовать стандартный массив вместо объекта, подобного массиву, или этот метод просто включен для полноты?
[изменить]
Иными словами, каковы различия между массивом JavaScript и массивом, возвращаемым селектором jQuery?