在 JavaScript 中,我们可以像这样表达一个简单的 noop 函数(在 Lodash 中也是如此):
const noop = () => {};
这可能是一个轻浮的区别,但它算作一个纯函数吗?我最初的猜测是,这是因为:
- 引用透明,因为它总是返回
undefined
. - 不会造成任何副作用。
但是如果我们重复调用这个函数(就像下面的代码块分配undefined
给一堆变量),它最终会不会因为外部状态一直在变化而导致不同的行为(比如崩溃程序)?
const a = noop();
const b = noop();
const c = noop();
const d = noop();
...
...
(... until memory runs out)
(或者我们应该在这种情况下把记忆等问题放在一边?)