makeArray : 类数组转真数组
merge : 合并数组或转特殊json
使用例子(外部使用):
var aDiv = document.getElementsByTagName('div');
console.log($.makeArray(aDiv)); //[div,div,div]
var str = 'hello';
console.log($.makeArray(str)); //['hello']
var num = 123;
console.log($.makeArray(num)); //[123]
使用例子(内部使用):
var num = 123;
console.log($.makeArray(num, {length:0})); //{0:123,length:1}
var core_push = Array.prototype.push, .................... jQuery.extend({ ...................... // results is for internal usage only makeArray: function( arr, results ) { var type, ret = results || []; if ( arr != null ) { // The window, strings (and functions) also have 'length' // Tweaked logic slightly to handle Blackberry 4.7 RegExp issues #6930 type = jQuery.type( arr ); if ( arr.length == null || type === "string" || type === "function" || type === "regexp" || jQuery.isWindow( arr ) ) { core_push.call( ret, arr ); } else { jQuery.merge( ret, arr ); } } return ret; }, merge: function( first, second ) { var l = second.length, i = first.length, j = 0; if ( typeof l === "number" ) { for ( ; j < l; j++ ) { first[ i++ ] = second[ j ]; } } else { while ( second[j] !== undefined ) { first[ i++ ] = second[ j++ ]; } } first.length = i; return first; }, ............... });