mirror of
https://github.com/ruanyf/es6tutorial.git
synced 2024-04-21 12:32:22 +00:00
edit set-map
This commit is contained in:
+8
-4
@@ -1,6 +1,6 @@
|
||||
# 函数式编程
|
||||
|
||||
从一诞生,JavaScript语言就具有函数式编程的烙印。它将函数作为一种独立的数据类型,与其他数据类型处于完全平等的地位。在JavaScript语言中,你可以采用面向对象编程,也可以采用函数式编程。有人甚至说,JavaScript是有史以来第一种被大规模采用的函数式编程语言。
|
||||
JavaScript语言从一诞生,就具有函数式编程的烙印。它将函数作为一种独立的数据类型,与其他数据类型处于完全平等的地位。在JavaScript语言中,你可以采用面向对象编程,也可以采用函数式编程。有人甚至说,JavaScript是有史以来第一种被大规模采用的函数式编程语言。
|
||||
|
||||
ES6的种种新增功能,使得函数式编程变得更方便、更强大。本章介绍ES6如何进行函数式编程。
|
||||
|
||||
@@ -37,7 +37,7 @@ f.comp = (...fs) => {
|
||||
|
||||
## 参数倒置
|
||||
|
||||
参数倒置(flip)指的是改变函数参数的顺序。
|
||||
参数倒置(flip)指的是改变函数前两个参数的顺序。
|
||||
|
||||
```javascript
|
||||
var divide = (a, b) => a / b;
|
||||
@@ -45,9 +45,13 @@ var flip = f.flip(divide);
|
||||
|
||||
flip(10, 5) // 0.5
|
||||
flip(1, 10) // 10
|
||||
|
||||
var three = (a, b, c) => [a, b, c];
|
||||
var flip = f.flip(three);
|
||||
flip(1, 2, 3); // => [2, 1, 3]
|
||||
```
|
||||
|
||||
上面代码中,如果按照正常的参数顺序,10除以5等于2。但是,参数倒置以后得到的新函数,结果就是5除以10,结果得到0.5。
|
||||
上面代码中,如果按照正常的参数顺序,10除以5等于2。但是,参数倒置以后得到的新函数,结果就是5除以10,结果得到0.5。如果原函数有3个参数,则只颠倒前两个参数的位置。
|
||||
|
||||
参数倒置的代码非常简单。
|
||||
|
||||
@@ -55,7 +59,7 @@ flip(1, 10) // 10
|
||||
let f = {};
|
||||
f.flip =
|
||||
fn =>
|
||||
(...args) => fn.apply(null, args.reverse());
|
||||
(a, b, ...args) => fn(b, a, ...args.reverse());
|
||||
```
|
||||
|
||||
## 执行边界
|
||||
|
||||
Reference in New Issue
Block a user