In Javascript, come posso associare argomenti a una funzione senza associare il thisparametro?
Per esempio:
//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?
Come posso evitare l'effetto collaterale di dover vincolare anche l'ambito della funzione (ad es. Impostazione this= null)?
Modificare:
Dispiace per la confusione. Voglio associare gli argomenti, quindi essere in grado di chiamare la funzione associata in un secondo momento e farla comportare esattamente come se chiamassi la funzione originale e le passassi gli argomenti vincolati:
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?
Sono ancora nuovo in questo, scusa per la confusione.
Grazie!
bind()essere null? Sembra funzionare bene in FF.
thiscompletamente unbound in JavaScript. Significa sempre qualcosa . Quindi l'associazione thisalla thisfunzione di inclusione ha molto senso.
this?var b = c.bind(this, 1,2,3);