纯函数中的数组扩展运算符



在Redux教程中,他们大量使用数组扩展运算符来编写化简器(必须是纯函数)。执行以下脚本。

let a = {
  b : "ddff",
  c : "adxas"
}
let c = {
  b : "ssdds",
  c : "asdxasdsad"
}
let d = [];
d.push(a);
d.push(c);
console.log(d);
const pureFunc = (arr,b,c) => {
  return [...arr, { b , c}];
}
let n = pureFunc(d,"daaaa","sdadad");
console.log(n);
d[0].b = "Hello";
console.log(n)

函数"pureFunc"是一个适当的纯函数。数组 d 上的突变正在对象 n 中反映出来。

是的,pureFunc是纯粹的。突变不会发生在pureFunc内。

最常见和最基本的纯函数之一是恒等函数:

let identity = x => x;

因此,如果我们传递一个对象,我们将返回相同的对象。我们可以在事后修改它,但这并不能使identity不纯,因为identity没有进行突变。

基本上,纯函数只需要满足两个要求:

  1. 在给定相同的输入的情况下,它们总是产生相同的输出
  2. 它们不会引起副作用

相关内容

  • 没有找到相关文章

最新更新