Javascript 基于镜像表的动态实例检测
我正在寻找一种方法来测试某个对象是否属于特定实例。不过,实例是在数组中定义的。因此,查找变得动态:Javascript 基于镜像表的动态实例检测,javascript,instanceof,Javascript,Instanceof,我正在寻找一种方法来测试某个对象是否属于特定实例。不过,实例是在数组中定义的。因此,查找变得动态: var element = document.getElementsByTagName('button').item(0); var instances = ['Attr', 'Element']; instances.forEach(function(instance) { console.log(element instanceof instance); }); 现在,这会抛出一个错
var element = document.getElementsByTagName('button').item(0);
var instances = ['Attr', 'Element'];
instances.forEach(function(instance)
{
console.log(element instanceof instance);
});
现在,这会抛出一个错误:
TypeError:在check的instanceof中需要一个函数,但得到了
好的,然后我想,在这种情况下我可以试一试:
console.log(element instanceof eval(instance));
这和预期的一样,但是嘿,这是一个eval()
我想把它包装成一个函数,可以用在任何对象上
有比eval更好的方法吗?对于您正在做的事情,您可以使用元素的节点类型:
var element = document.getElementsByTagName('button').item(0);
var instances = [1, 2]; // nodeType 1 == element, nodeType 2 == attribute
instances.forEach(function(nt)
{
console.log(element.nodeType == nt);
});
我希望将其包装成一个函数,可以用于任何对象。它不仅仅适用于DOM节点。