我用来在我的 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 中看到的那样,我知道 using e.data
,也就是说,事实上,我想使用它的原因bind()
是我可以摆脱这种语法。
我的问题是,有没有一种方法可以bind()
用来保存this
和访问当前的 jQuery 对象?