id:m-hiyamaさんへ、(メソッドではない)関数のCurry化ならテキスト処理無しで出来ますよ、と。

function curry(func){
  return function(x){
    return function(){
      var args  = new Array(arguments.length+1);
      args[0] = x;
      for(var i=1;i<args.length;i++){
        args[i] = arguments[i-1];
      }
      return func.apply(null,args);
    };    
  };
}
function sum(x,y){
  return x+y;
}
alert(curry(sum)(10)(15));
alert(curry(sum)(10)(15,20));

追記)
任意個のcurry化を綺麗に書くとこうなる。

function curry(func){
  return function(){
    var fix = arguments;
    return function(){
      var args  = new Array();
      args = args.concat.apply(args,fix);
      args = args.concat.apply(args,arguments);
      return func.apply(null,args);
    };    
  };
}
function sum(x,y){
  return x+y;
}
alert(curry(sum)(10)(10));