什么jquery isArrayLike检查nodeType

时间:2014-04-05 03:22:51

标签: javascript jquery

有一个名为' isArrayLike'在jquery中,许多函数使用它,例如$ .each

function isArraylike( obj ) {
var length = obj.length,
    type = jQuery.type( obj );

if ( type === "function" || jQuery.isWindow( obj ) ) {
    return false;
}

if ( obj.nodeType === 1 && length ) {
    return true;
}

return type === "array" || length === 0 ||
    typeof length === "number" && length > 0 && ( length - 1 ) in obj;

}

我知道它用于看它是否像一个数组,但我不知道为什么第二个if。

检查nodeType以确定它是一个元素,为什么是长度?元素是否具有length属性?

THX

1 个答案:

答案 0 :(得分:2)

如果您发现没有意义的未记录代码,您可以做的一件事就是看看为什么有人首先编写它。这是添加nodeType检查的提交:

https://github.com/jquery/jquery/commit/3c7f2af81d877b24a5e5b6488e78621fcf96b265

根据他们添加的测试判断,它是支持form元素,它将被视为一组控件。