jQuery関数内で(クラスのインスタンスである)bind()
を保持するために使用しています:this
if (!Function.prototype.bind) {
Function.prototype.bind = function(){
var fn = this, args = Array.prototype.slice.call(arguments),
object = args.shift();
return function(){
return fn.apply(object,
args.concat(Array.prototype.slice.call(arguments)));
};
};
}
問題は、たとえばクリックイベントがあり、使用して要素にアクセスできなくなり、アクセスできる$(this)
はずがない場合です。
例えば:
View.prototype.sayHelloBind = function(){
this.$el.find('#bind').on('click', (function(){
// This no longer works
$(this).css('color', 'red');
alert(this.message);
}).bind(this));
}
JSFiddle でわかるように、私は を使用していることに気付いています。これe.data
が、実際に使用したい理由であり、bind()
その構文から逃れることができます。
私の質問は、現在の jQuery オブジェクトにアクセスするだけでなく、bind()
保存するために使用する方法はありますか?this