code: function Observer(object, observer, types) {
    return {
      observe(_types) {
        types = _types || types;
        if (isObject(object)) observe(object, observer, types);
        return this;
      },
      unobserve() {
        if (isObject(object)) unobserve(object, observer);
        return this;
      },
      reobserve(_object) {
        this.unobserve();
        object = _object;
        return this.observe();
      }
    };
  }
docs: Make an Observer object, which allows easy unobserving and resobserving.