Javascript:检查函数本身的相等性,而不是返回值

Javascript:检查函数本身的相等性,而不是返回值,javascript,function,Javascript,Function,我想把一个函数作为属性传递给另一个函数。然后我想测试该函数是否等于某个特定函数: function f(func) { if (func === testFunc) { console.log("They're the same!") } } function testFunc(x) { return x+1 } f(testFunc) 以上工作如预期。top函数中的条件传递,该行被输出到控制台。但是,如果我使用函数自身的属性传递函数,则发现它不相等:

我想把一个函数作为属性传递给另一个函数。然后我想测试该函数是否等于某个特定函数:

function f(func) {
    if (func === testFunc) {
        console.log("They're the same!")
    }
}

function testFunc(x) {
   return x+1
}

f(testFunc)
以上工作如预期。top函数中的条件传递,该行被输出到控制台。但是,如果我使用函数自身的属性传递函数,则发现它不相等:

f(testFunc(2))

我假设这是因为返回值不同。那么,我如何测试实际函数是否相同,而不是它们的返回值?有办法吗?

如果要检查,如果两个对象的内容相同,则需要使用uneval函数


请记住,这比eval更糟糕,因此尽可能避免使用它。

您尝试过typeof吗?是否要测试函数内容?例如:代码?
testFunc
传递函数,
testFunc(2)
执行函数并传递返回值…@MarcoS我想这就是他想要的。
testFunc
永远不会等于
3
@deceze这就是为什么它比eval更糟糕的原因,至少其他浏览器支持eval。