正在回答
1回答
同学你好,可以参考如下来理解:
var isElement = function (obj) {
//nodeType 属性返回以数字值返回指定节点的节点类型。 如果节点是元素节点,则 nodeType 属性将返回 1。
//第一次过滤 判断节点是否存在,且nodeType的属性值是否返回1
if (obj && obj.nodeType === 1) {
//第二次过滤 window.Node 查看window下是否有Node对象
// obj instanceof Node 判断obj是Node对象的一个实例,
if( window.Node && (obj instanceof Node )){
//如果满足这两个条件,返回ture
return true;
}
// //由于obj可能是来自另一个文档对象,因此不能轻易返回false
try {
testDiv.appendChild(obj);
testDiv.removeChild(obj);
} catch (e) {
// 如果两者以上运行有错误,则返回false
return false;
}
// 如果符合第一次过滤,返回true
return true;
}
// 如果不符合第一次过滤,返回false
return false;
}是比较绕的,同学可以多试着理解一下。
如果我的回答帮到了你,欢迎采纳,祝学习愉快~
代码的意思能在解释一下吗 特别的是后俩return
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星