淘先锋技术网

首页 1 2 3 4 5 6 7

jQuery中有一个名为makeArray的函数,它能够将类数组对象转化为真正的JavaScript数组。那么它的实现原理是什么呢?我们来看一下makeArray的源码。

jQuery.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;
};

在源码中,我们可以看到makeArray接受两个参数,第一个为需要被转化为数组的对象,第二个为可选参数,表示将结果存入该数组中。

在函数内部,它首先会判断arr是否为null,如果不为null,则会判断它是否为类数组对象。这里我们看到一个isArraylike函数,它用来判断一个对象是否为类数组对象。如果是,就将它转化为真正的数组。如果不是,则直接将它当做元素push到结果数组中。

最后,makeArray返回一个结果数组,该数组就是转化后的真正的JavaScript数组。