Dalam Javascript, bagaimana cara mengikat argumen ke suatu fungsi tanpa mengikat thisparameter?
Sebagai contoh:
//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?
Bagaimana saya bisa menghindari efek samping karena harus mengikat ruang lingkup fungsi (misalnya, pengaturan this= null) juga?
Edit:
Maaf bila membingungkan. Saya ingin mengikat argumen, kemudian dapat memanggil fungsi terikat nanti dan membuatnya berperilaku persis seperti jika saya memanggil fungsi asli dan meneruskannya ke argumen terikat:
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?
Saya masih baru dalam hal ini, maaf atas kebingungannya.
Terima kasih!
bind()be null? Sepertinya bekerja dengan baik di FF.
thissepenuhnya melepaskan JavaScript. Itu selalu berarti sesuatu . Jadi mengikat thiske thisfungsi penutup sangat masuk akal.
this?var b = c.bind(this, 1,2,3);