yılında sarma vs bir örnek yöntemi bağlayıcı [Bu Bound function instead of closure to inject extra arguments ile ilgilidir, ama bu ne açıkça sordu ne de cevap verilmiştir.] Ben onun argüman olarak bir işlev bekleyen işlev çağırıyorumisimsiz bir işlev
. Sınıfımın bir örneğine bağlı, sınıfımdaki bir yöntemi geçmek istiyorum.
doSomething(my_instance.myMethod.bind(my_instance))
ve anonim işlevinde çağrıyı sarma:
doSomething(function() { my_instance.myMethod(); })
var MyClass = function() {}
MyClass.prototype.myMethod = function() { ... }
var my_instance = new MyClass();
bind
kullanma arasında herhangi somut bir fark var mı: gibi berrak, benim sınıf görünüyor varsayalım yapmak için ?
* "my_instance" (ve 'my_instance.myMethod') çözüldüğünde etkin fark * şeklindedir. Bağlamaların hiçbirinin değişmediğini varsayarsak, yöntem çağrıldığında her ikisi de "bu" my_instance "değerine sahip olacaktır. Çağrı çerçeveleri ile küçük farklılıklar olacaktır, ancak * silkmek *. – user2864740
'Bağlama' düşünüldüğünden, burada '' daha iyi '' anlamına geldiğinden emin değilim. – user2864740
@ user2864740 Bu yazının birincil amacını bulanıklaştırdığı için "daha iyi bir şeyler var" sorusunu kaldırdım. –