保证纯函数
一个函数的返回结果只依赖于他的参数,同样的输入必定有同样的输出
减少函数副作用
函数副作用就是函数,会影响外部的数据,如果全局变量
//非纯函数
var a=10;
function add(num){
return num+a;
}
add(3)
//纯函数
var a=10;
function add(a,num){
return num+a;
}
a=5;
add(a,3)
//副作用
var a=10;
function aplus(){
a+=1;
return a;
}
//取消副作用
var a=10
function aplus(a){
a+=1;
return a;
}
//对象消除副作用
var obj={
a:123
}
function objPlus(obj){
var _obj=obj.create(obj);
_obj.a+=1;
return _obj;
}
//数组消除副作用
var arr=[1,2,3,4,5,6];
function arrPlus(arr){
var _arr=[...arr];
_arr[0]+=1;
return _arr;
}
工程化下的函数式编程
//ES6
export function f1(){
}
export function f2(){
}
import {f1} from "./code.js"
import * as all from "./code.js"
all.f2();
//commonjs
function f1(){
}
function f2(){
}
exports.f1=f1;
exports.f2=f2;
const all=require("./code.js");
原创文章,作者:306829225,如若转载,请注明出处:https://blog.ytso.com/275295.html