Lectura a través de la fuente en: http://documentcloud.github.com/underscore/underscore.jscomportamiento subrayado con bind
Este es el método utilizado con tanta frecuencia _bind (He quitado el cheque nativa para mayor claridad)
_.bind = function(func, obj) {
var args = slice.call(arguments, 2);
return function() {
return func.apply(obj, args.concat(slice.call(arguments)));
};
};
Los argumentos que van pasando func.apply parece innecesariamente duplicado al final
Un ejemplo utilizando intérprete nodo (quitar última línea para tratar de Firebug etc ..)
var arguments = [1,2,3,4,5,6];
var args = Array.prototype.slice.call(arguments, 2);
var appliedArgs = args.concat(Array.prototype.slice.call(arguments));
require('sys').puts(appliedArgs);
Este salidas:
3,4,5,6,1,2,3,4,5,6
Dudo mucho que he encontrado un bug, pero confundido en cuanto a por qué su trabajo de esta manera, ¿por qué añadir los argumentos de nuevo de tal manera. Confundido
Gracias gary. Eché de menos eso, tiene sentido ahora. –
No hay problema. Si intenta hacerse una idea del código fuente de Underscore, también proporcionan una versión anotada: http://documentcloud.github.com/underscore/docs/underscore.html –