Es6 函数式编程 MayBe函子的简单示例

Posted cylee

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Es6 函数式编程 MayBe函子的简单示例相关的知识,希望对你有一定的参考价值。

初级函子的作用非常简单,使用场景主要体现在:深入访问object的属性的时候,不会担心由于属性不存在、undefined、null等问题出现异常。

 

MayBe.js

var MayBe = function (val) {
    this.value = val;
}

MayBe.of = function (val) {
    return new MayBe(val);
}

MayBe.prototype.isNothing = function () {
    return (this.value === null || this.value === undefined);
}

MayBe.prototype.map = function (fn) {
    return this.isNothing() ? MayBe.of(null) : MayBe.of(fn(this.value));
}

// demo1: MayBe?{value: "Mr. GOOGLE"}
MayBe.of(‘Google‘)
     .map(_ => _.toUpperCase())
     .map(_ => "Mr. " + _)

// demo2: MayBe?{value: null}
MayBe.of(‘Google‘)
     .map(_ => undefined)
     .map(_ => "Mr. " + _)

 

以上是关于Es6 函数式编程 MayBe函子的简单示例的主要内容,如果未能解决你的问题,请参考以下文章

JS函数式编程译5.2 函子 (Functors)

函数式夜点心:异步流程与 Task 函子

函数式编程进阶:应用函子

在你身边你左右 --函数式编程别烦恼

js函数式编程--函子

高阶函数式编程:在 Kotlin 中“实现”函子(Functor)