【发布时间】:2017-10-21 15:34:00
【问题描述】:
我是一名 JS 开发人员,正在尝试函数式编程思想,我想知道是否有任何方法可以按照 promise 链的编写方式将链用于同步函数。
例如:
function square (num) {
return num * num;
}
let foo = 2
let a = square(foo) //=> 4
let b = square(square(foo)) //=> 16
很公平,但是我想做的(通常是为了使代码解析更容易)是通过将这些方法作为链的第一个参数传入来将这些方法链接在一起。所以这样的事情会起作用:
let c = square(foo)
.square()
.square() //=> 256
有什么方法可以用 vanilla javascript 做到这一点,还是我必须修改 Function.prototype 才能做到这一点?
【问题讨论】:
-
也许修改
Number原型并做foo.square().square()...? -
Professor Frisby 您可能会感兴趣。
标签: javascript functional-programming language-features function-prototypes