En Javascript, ¿cómo puedo vincular argumentos a una función sin vincular el thisparámetro?
Por ejemplo:
//Example function.
var c = function(a, b, c, callback) {};
//Bind values 1, 2, and 3 to a, b, and c, leave callback unbound.
var b = c.bind(null, 1, 2, 3); //How can I do this without binding scope?
¿Cómo puedo evitar el efecto secundario de tener que vincular también el alcance de la función (por ejemplo, configuración this= nulo)?
Editar:
Perdón por la confusion. Quiero vincular argumentos, luego poder llamar a la función vinculada más tarde y hacer que se comporte exactamente como si llamara a la función original y le pasara los argumentos vinculados:
var x = 'outside object';
var obj = {
x: 'inside object',
c: function(a, b, c, callback) {
console.log(this.x);
}
};
var b = obj.c.bind(null, 1, 2, 3);
//These should both have exact same output.
obj.c(1, 2, 3, function(){});
b(function(){});
//The following works, but I was hoping there was a better way:
var b = obj.c.bind(obj, 1, 2, 3); //Anyway to make it work without typing obj twice?
Todavía soy nuevo en esto, lo siento por la confusión.
¡Gracias!
bind()ser null? Parece funcionar bien en FF.
thiscompletamente desatado en JavaScript. Siempre significa algo . Por lo tanto, la vinculación thisal thisde la función adjunta tiene mucho sentido.
this?var b = c.bind(this, 1,2,3);