在Redux教程中,他们使用数组扩展运算符来编写reducers(必须是纯函数)。浏览以下脚本。
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中。
答案 0 :(得分:1)
是的,pureFunc
是纯粹的。 pureFunc
内不会发生突变。
最常见和最基本的纯函数之一是身份函数:
let identity = x => x;
所以,如果我们传递一个对象,我们将得到相同的对象。我们可以在事实之后修改,但这不会使identity
不纯,因为identity
没有做突变。
基本上,纯函数只需要满足两个要求: