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

时间:2016-04-22 10:03:57

标签: javascript function

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

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

function testFunc(x) {
   return x+1
}

f(testFunc)

以上工作符合预期。 top函数中的条件通过,并将该行输出到控制台。但是,如果我使用自己的属性传递函数,则发现它不相等:

f(testFunc(2))

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

1 个答案:

答案 0 :(得分:0)

如果要检查,如果2个对象的内容相同,则需要使用uneval函数。 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/uneval

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