【发布时间】:2018-06-18 14:05:04
【问题描述】:
从一个简单的函数组合开始
const fa = (x => (x + "a"));
const fb = (x => (x + "b"));
fb(fa('x'))
我玩了一下,得到了以下代码 sn-p,它返回 'xba' 而不是 'xab'。
谁能解释一下原因?
const fa = next => x => next(x + "a");
const fb = next => x => next(x + "b");
console.log(fb(fa(y => y))('x'));
【问题讨论】:
-
你预计会发生什么?
-
我期待'xab'。但我不知道执行顺序是什么或到底发生了什么。所以我想了解为什么'xba'是结果
-
fa创建一个附加"a"的函数。这个函数被传递给fb,它追加"b",然后调用传递的函数(它追加"a")。
标签: javascript functional-programming function-composition