In Javascript, come posso associare argomenti a una funzione senza associare il this
parametro?
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.
this
completamente unbound in JavaScript. Significa sempre qualcosa . Quindi l'associazione this
alla this
funzione di inclusione ha molto senso.
this
?var b = c.bind(this, 1,2,3);