我想知道一个函数是否没有操作。我正在寻找诸如angular.isNoop()之类的内置方法,但找不到任何东西。有什么可以区分noop的吗?

最佳答案

noop只是一个不包含任何操作的函数。您可以使用===测试特定的noop功能

例如;

console.log(x === angular.noop);

如果从Angular分配了x,则将输出true,但是如果x使用的是jQuery的noop,则将无法打印。

检查变量是否看起来像noop。您只需要查看函数字符串是否以{}结尾。您可以尝试这样的事情。
console.log(angular.isFunction(x) && /\{\}$/.test(x.toString()));

上面的代码即使在代码最小化的情况下也应该起作用。

10-07 17:36