Search code examples
javascriptinheritancepartial-application

How to get parent object when context is function?


I would like to write curring function for object methods. I want to make this possible:

Function.prototype.curry = function (){
  var originalFunction = this;
  var args = ...; // here goes logic embracing arguments
  var bind = ???; //how to get reference to someObject ???
  return function(){
    return originalFunction.apply(bind, args);
  }
}

var someObject = {
  doSomething : function (param1, param2, param3){
    //do something with params
    return param1 + ' ' + param2 + ' ' + param3;
  }
}

someObject.doSomethingCurried = someObject.doSomething.curry('param1 value', 'param2 value');

//I want to be able to do:
someObject.doSomethingCurried('param3 value')'


Solution

  • There are some tricks, but in fact you should just pass context as a first argument, like native bind.