Open nitroge opened 2 years ago
将程序分解为一些更可重用、更可靠且更易于理解的部分,然后将他们组合起来,形成一个更易推理的程序整体。 // 命令式编程 var arr = [1, 2, 3, 4]; var newArr = []; for(let i = 0; i < arr.length; i++){ newArr.push(arr[i] + 1); } // 函数式编程 var add = x => x+1; var createArr = function (arr, fn) { var newArr = []; for(let i = 0; i < arr.length; i++){ newArr.push(fn(arr[i])); } return newArr; } 纯函数 纯函数可以保证代码的稳定性,因为相同的输入永远会得到相同结果。不纯的函数可能会带来副作用。 函数副作用 调用函数时除了返回函数值之外,还对主调用函数产生附加的影响,比如修改全局变量或者外部变量,或者修改参数。这可能会带来难以查找的问题并降低代码的可读性。
将程序分解为一些更可重用、更可靠且更易于理解的部分,然后将他们组合起来,形成一个更易推理的程序整体。
// 命令式编程 var arr = [1, 2, 3, 4]; var newArr = []; for(let i = 0; i < arr.length; i++){ newArr.push(arr[i] + 1); } // 函数式编程 var add = x => x+1; var createArr = function (arr, fn) { var newArr = []; for(let i = 0; i < arr.length; i++){ newArr.push(fn(arr[i])); } return newArr; }
纯函数可以保证代码的稳定性,因为相同的输入永远会得到相同结果。不纯的函数可能会带来副作用。
调用函数时除了返回函数值之外,还对主调用函数产生附加的影响,比如修改全局变量或者外部变量,或者修改参数。这可能会带来难以查找的问题并降低代码的可读性。
减少副作用方法:
函数式编程
减少副作用方法:
可变性和不可变性