明明前边用if判断就可以把是否为元素类型判断出来了,就算是自己写的a={nodeType:1}页可以正确判断了,为什么不直接写else{return false};而是还要写try catch 语句呢。
因为如果 代码出错,整个程序就会停止,他代码放到try里 能正确执行就会正确执行,如果报错就会进入catch里面,代码还是会向后执行。不会影响整个程序。如果直接放到if里的话 if里的代码报错就算结束了 else里的return false是不会执行的。
function isElement(obj){
if(obj&&obj.nodeType===1){
if(window.Node&&obj instanceof Node){
return true;
}
try{
testDiv.appendChild(obj);
testDiv.removeChild(obj);
}
catch(e){
return false;
}
return true;
}
return false;
}
额,可能我没有表述清楚,比如上例中,我觉得try catch 根本就没有必要,直接改成else{return false;}
就各种情况都能判断了呀。