我在查看React源代码时发现了一个需要使用var emptyFunction = require('fbjs/lib/emptyFunction');
的要求。
我查看了这个函数,对它的作用感到困惑。
下面是这个函数:
function makeEmptyFunction<T>(arg: T): (...args: Array<any>) => T {
return function() {
return arg;
};
}
const emptyFunction: (...args: Array<any>) => void = function() {};
在评论中,他们提供了以下解释,我对此感到困惑:
此函数接受并丢弃输入;它没有副作用。这主要用于习惯性地覆盖可调用的函数端点,因为JS缺少类似Cocoa的空调用习惯用法。
我从未遇到过null call idiom,并希望有人能澄清这是什么意思,并用不那么技术化的语言解释这个函数的目的。
希望这个问题不会被看作不相关的问题。也许它应该属于其他地方,如果是这样我很抱歉。