猿问

这句函数是怎么被执行的?

最近在看函数式编程指南

看到容器的部分有点看不懂,其中有一段代码讲Functor的如下:

class Maybe {

  static of(x) {

    console.log(1);

    return new Maybe(x);

  }


  get isNothing() {

    console.log(2);

    return this.$value === null || this.$value === undefined;

  }


  constructor(x) {

    console.log(3);

    this.$value = x;

  }


  map(fn) {

    console.log(4);

    return this.isNothing ? this : Maybe.of(fn(this.$value));

  }


  inspect() {

    console.log(5);

    return this.isNothing ? 'Nothing' : `Just(${this.$value})`;

  }

}


var test1 = Maybe.of('Malkovich Malkovich');

console.log(test1);


var test2 = Maybe.of(null).map(_.match(/a/ig));

console.log(test2);


var test3 = Maybe.of({ name: 'Boris' })

                  .map(_.prop('age'))

                  .map(_.add(10));

console.log(test3);


var test4 = Maybe.of({ name: 'Boris', age: 14 })

                  .map(_.prop('age'))

                  .map(_.add(10));

console.log(test4);

比较奇怪和不理解的是inspect函数是怎么执行的?似乎没有地方调用这个函数呀。
希望有大神可以解答交流一下~

小怪兽爱吃肉
浏览 296回答 1
1回答

BIG阳

inspect只是为了查看容器里面的值的时候用的,你这里没有调用,当然也不会执行
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答