jquery 中的 isArraylike 函数详解
jquery 是我们学习前端最先接触的 javascript 类库,里面的很多函数都对我们学习 javascript 有很多参考意义,今天就来分析一下 jquery 中的 isArraylike 函数源码.
它的作用是判断一个对象是否是一个类数组的对象,即可以用 obj[n]来访问
首先看看它的源码
function isArraylike( obj ) { //如果 obj 里面有 length 键,则 length 等于 obj.lenght;否则等于 false var length = "length" in obj && obj.length, //检测 obj 的类型 type = jQuery.type( obj ); //如果 obj 是 function 类型 或者是 window 对象 则返回 false; if ( type === "function" || jQuery.isWindow( obj ) ) { return false; } //如果是 dom 元素,则为 if(length);若 length 为 true;则返回 true if ( obj.nodeType === 1 && length ) { return true; } //如果 obj 的类型是"array", //length 为 0, //length 的属性是 number 为 true //length 大于 0;//length-1 在 obj 里面是否存在 return type === "array" || length === 0 || typeof length === "number" && length > 0 && ( length - 1 ) in obj; }