纯函数中的数组扩展运算符
Array Spread Operator in Pure Function
在 Redux Tutorial 中,他们大量使用数组展开运算符来编写 reducer(必须是纯函数)。通过以下脚本。
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
没有进行突变。
基本上,纯函数只需要满足两个要求:
- 给定相同的输入,它们总是产生相同的输出
- 它们不会引起副作用
在 Redux Tutorial 中,他们大量使用数组展开运算符来编写 reducer(必须是纯函数)。通过以下脚本。
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
没有进行突变。
基本上,纯函数只需要满足两个要求:
- 给定相同的输入,它们总是产生相同的输出
- 它们不会引起副作用