TokenYangForever / NewProject

0 stars 0 forks source link

从几个关键词来理解函数式编程 #37

Open TokenYangForever opened 6 years ago

TokenYangForever commented 6 years ago

一等公民

xs.slice(0,3); //=> [1,2,3]

xs.slice(0,3); //=> [1,2,3]

// 不纯的 xs.splice(0,3); //=> [1,2,3]

xs.splice(0,3); //=> [4,5]

xs.splice(0,3); //=> []

* 纯函数的还有一个特点,就是自给自足,不依赖于外部环境,也就是**不会去引用其他作用域的变量,只会使用传入的参数以及内部作用域的变量**。下面再来看一个例子,假如我们要定义一个函数,用来判断是否成年了(age大于18):

// 不纯的,引用了外部变量 let adultAge = 21; const checkAge = function(age) { return age >= adultAge; }; // 纯的 const checkAge = function(age) { let adultAge = 21; return age >= adultAge; };


* 所以推荐使用纯函数来避免产生副作用,副作用的定义为:在计算结果的过程中,系统状态的一种变化,或者与外部世界进行的可观察的交互。
#### 柯里化
* 概念:只传递给函数一部分参数来调用它,让它返回一个函数去处理剩下的参数