我想将一个函数作为属性传递给另一个函数。然后我想测试该函数是否等于特定函数:
function f(func) {
if (func === testFunc) {
console.log("They're the same!")
}
}
function testFunc(x) {
return x+1
}
f(testFunc)
以上工作符合预期。 top函数中的条件通过,并将该行输出到控制台。但是,如果我使用自己的属性传递函数,则发现它不相等:
f(testFunc(2))
我认为这是因为返回值不同。那么如何测试实际功能是否相同,而不是它们的返回值?有办法吗?
答案 0 :(得分:0)
如果要检查,如果2个对象的内容相同,则需要使用uneval函数。 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/uneval
请记住,这比eval更糟糕,所以尽可能避免使用它。