Javascript:检查函数本身的相等性,而不是返回值
Javascript: Checking equality of the functions themselves, not return values
我想将一个函数作为属性传递给另一个函数。然后,我想测试该函数是否等于特定函数:
function f(func) {
if (func === testFunc) {
console.log("They're the same!")
}
}
function testFunc(x) {
return x+1
}
f(testFunc)
以上工作按预期。top 函数中的条件通过,行输出到控制台。但是,如果我使用自己的属性传递函数,则发现它不相等:
f(testFunc(2))
我认为这是因为返回值不同。那么如何测试实际函数是否相同,而不是它们的返回值呢?有办法吗?
如果要检查,如果 2 个对象的内容相同,则需要使用 uneval 函数。 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/uneval
请记住,这比 eval 更糟糕,因此请尽可能避免它。
相关文章:
- Javascript返回值只在循环中返回一次
- XMLHttpRequest未返回值-状态202
- 根据是否解析了 Promise 从函数返回值
- Angular,函数在(模型)工厂中返回值
- AngularJS错误:提供程序必须从$get工厂方法返回值
- 如何从客户端的数组中获取用户输入和返回值
- Javascript中带有返回值的嵌套函数
- 为变量分配多个nodejs导出返回值时出现问题
- Javascript:检查函数本身的相等性,而不是返回值
- 在检查选中哪个按钮并从字段中获取值后返回值
- 将一个函数作为参数传递给另一个函数,每次调用函数时检查返回值
- 从更改事件返回“已检查”的值
- 使用isNan()函数将参数从html传递给javascript,并检查值然后返回值
- 在 javascript 中解析 json 数组时检查返回值
- 如何在angularjs中检查承诺返回值并采取行动
- Ajax连接检查对象没有返回值
- 如何检查angularjs服务中的返回值是一个承诺
- 什么'这是检查`querySelectorAll`返回值的正确方法
- 如何在运行解析之前检查JSON解析方法是否返回值
- 如何检查ajax返回值