¿Cómo hacer currying con UnderscoreJS?

Estoy experimentando un poco con _.bind(...) . Veo cómo forzar un context de function con bind, pero aún no veo cómo hacer currying.

Lo que bash es esto:

  add = function(number) { this.sum = this.sum + number; } add5 = _.bind(add, { sum: 0 }, 5) 

Sin embargo, llamar add5() , o add5(5) parece no tener algunos efectos.

¿Alguna pista sobre cómo envolver los arguments de modo que el context se preserve de una llamada a otra?

One Solution collect form web for “¿Cómo hacer currying con UnderscoreJS?”

Probablemente quieras hacer una aplicación parcial , no currying / schönfinkeling. Underscore tiene la function _.partial para esto:

 function add(a, b) { return a+b; } var add5 = _.partial(add, 5); 

También puedes usar _.bind , y tiene algunos efectos. Por ejemplo:

 var add5 = _.bind(add, null /*context is irrelevant*/, 5); add5(3); // returns 8 

Sin embargo, su function no devolvió nada, y el context que usted cambió no fue accesible. Sin embargo:

 var ctx1 = {sum: 0}; function add(a) { this.sum += a; } // returns nothing! var addto1 = _.bind(add, ctx1); addto1(5); // undefined ctx1; // {sum: 5} var add5to1 = _.bind(add, ctx1, 5); add5to1(); // undefined ctx1; // {sum: 10} var ctx2 = {sum: 5}; add3to2 = _.bind(add, ctx2, 3); add3to2(); // undefined ctx2; // {sum: 8} 
  • Cómo se hace hincapié en subrayar memoize en javascript
  • Agregar propiedad a una matriz de objects
  • ¿Cuál es la forma preferida de encadenar las funciones de Underscore.js?
  • Tiempo de espera de carga para modules con requirejs
  • Lodash: Cómo agregar un nuevo campo a todos los valores en la colección
  • Agrupar por y Suma utilizando subrayado / Lodash
  • ¿Cómo implementar una orderación multinivel en el comparador en Backbone.js / underscore.js?
  • Eliminar duplicates en una matriz de objects Javascript
  • ¿Qué tan lento es el motor de templates de JavaScript de John Resig?
  • Adición de ID y class en la plantilla de forma dinámica mediante vistas de networking troncal
  • Backbone collection sortBy
  • Elemento IndexOf en js array usando una function de verdad usando guion bajo o jquery
  • ¿Cómo encuentro events javascript misteriosamente enlazados?
  • Javascript tiene muchos buenos JS marco (como Node.js AngularJS Vue.js React.js) es el mejor lenguaje de script.