tpai
9/21/2017 - 10:21 AM

reselect quick implementation

reselect quick implementation

function createSelector(...funcs) {
  const resultFunc = funcs.pop();
  const selector = function() {
    const params = [];
    const length = funcs.length;
    for(let i=0;i<length;i++) {
      params.push(funcs[i].apply(null, arguments));
    }
    return resultFunc.apply(null, params);
  }
  return selector;
}

const total = createSelector(
  state => state.a,
  state => state.b,
  (a, b) => a + b
);

total({
  a: 1,
  b: 2
});