如何检查 JavaScript 对象是否为 DOM 对象?
2022-08-30 00:05:31
我试图得到:
document.createElement('div') //=> true
{tagName: 'foobar something'} //=> false
在我自己的脚本中,我曾经只使用它,因为我从来不需要作为属性:tagName
if (!object.tagName) throw ...;
因此,对于第二个对象,我想出了以下作为快速解决方案的方法 - 这主要是有效的。;)
问题是,它依赖于浏览器强制执行只读属性,而并非所有浏览器都这样做。
function isDOM(obj) {
var tag = obj.tagName;
try {
obj.tagName = ''; // Read-only for DOM, should throw exception
obj.tagName = tag; // Restore for normal objects
return false;
} catch (e) {
return true;
}
}
有好的替代品吗?