makearray(),转换一个类似数组的对象成为真正的JavaScript数组。
首先看看jquery中array的定义
makeArray: function( arr, results ) {
var ret = results || [];
if ( arr != null ) {
if ( isArraylike( Object(arr) ) ) {
jQuery.merge( ret,
typeof arr === "string" ?
[ arr ] : arr
);
} else {
push.call( ret, arr );
}
}
return ret;
}
在官方API举例如下:
将一个 HTMLElements 集合转换成对应的数组。将一个DIV集合转成成了数组
<html>
<head>
<style>
div { color:red; }
</style>
<script src="http://cdn.bootcss.com/jquery/1.11.2/jquery.min.js"></script>
</head>
<body>
<div>First</div>
<div>Second</div>
<div>Third</div>
<div>Fourth</div>
<script>
var elems = document.getElementsByTagName("div"); // returns a nodeList
var arr = jQuery.makeArray(elems);
arr.reverse(); // use an Array method on list of dom elements
$(arr).appendTo(document.body);
console.log(arr);
</script>
</body>
</html>
将对象转换成数组,这个转换好粗暴
将一个 jQuery 对象转换成一个数组。 1 2 var obj = $('li'); var arr = $.makeArray(obj); Result: 1 2 (typeof obj === 'object' && obj.jquery) === true; jQuery.isArray(arr) === true;