我需要测试给定的函数对象是否属于某个类。
在Firefox和Chromium / Chrome下,我可以创建函数名称字典,然后使用function.name测试somefunction.name in class_a_functions
是否正确。这在IE中不起作用。
我似乎无法创建一个函数对象字典来测试函数包含。
什么是实现此的跨浏览器方式,不涉及从函数的toString表示中删除名称并将其用作函数标识。表示{{3 }}?
答案 0 :(得分:0)
您可以应用与其他对象/值相同的过程:迭代该集合并将每个值与给定值进行比较。
使用设置对象:
var haystack = {...};
var needle = someFunction;
var isContained = false;
for (var key in haystack) {
if (needle === haystack[key]) {
isContained = true;
break;
}
}
使用数组:
var haystack = [...];
var needle = someFunction;
var isContained = false;
for (var i = 0; i < haystack.length; i++) {
if (needle === haystack[i]) {
isContained = true;
break;
}
}
// if indexOf is available:
var isContained = haystack.indexOf(needle) > -1;
// if some is available
var isContained = haystack.some(function(v) { return v === needle; });
相关: