有一个名为' 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
答案 0 :(得分:2)
如果您发现没有意义的未记录代码,您可以做的一件事就是看看为什么有人首先编写它。这是添加nodeType
检查的提交:
https://github.com/jquery/jquery/commit/3c7f2af81d877b24a5e5b6488e78621fcf96b265
根据他们添加的测试判断,它是支持form
元素,它将被视为一组控件。