【发布时间】:2021-05-13 09:35:21
【问题描述】:
我真的很喜欢纯函数方法,原因有很多,但我的主要观点是,如果它有相当大的性能损失,特别是在大量争论的情况下。
例如,而不是这个:
// no pure function
import bigState from './somewhere' // imagine a whole state with lots of values.
const impure = () => {
// do something with bigState
}
// pure function
const pure = (bigState) => {
// do something with bigState
}
使用这种函数和参数做大量工作的应用会受到惩罚吗?
【问题讨论】:
-
如果你将一个对象传递给一个函数,那就是引用,所以严格来说,一旦对象被修改,它就不再是纯粹的了。
-
这有什么关系?您认为大型对象引用会更慢吗?您不会像携带一个装满东西的大盒子那样传递物体。您正在传递参考。这就像你想在一家大卖场买一件大件的东西,你抓起一张纸,拿着它走到前面。你不是在商店里拖着那个巨大的物品。
-
对象不像字符串。如果是,它将是不可变的。
-
“激烈争论”到底是什么意思?其中很多?还是只是对具有许多属性的巨大对象的引用?
标签: javascript typescript performance functional-programming arguments