iegik
11/30/2017 - 10:33 AM

Design Patterns

Design Patterns in JavaScript

Strategy

Observer

Decorator

Factory

Factory method

Monad

function Maybe(val) {
    this.val = val || null;
}
Maybe.prototype.bind = function (f) {
    return (target => target(this.val))(f);
};
var x = (new Maybe(5));
var y = x
  .bind(v => new Maybe(v + 1))
  .bind(v => new Maybe(v * 2));