handleClick()
在下面的代码中,有没有比将其作为全局引用更好的方法来引用对象实例?
var Widget = function() {
this.property = 'value';
this.bindEvents();
}
Widget.prototype = {
bindEvents: function() {
$('button').on('click', this.handleClick);
},
handleClick: function() {
var self = window.Widget;
console.log(self.property);
}
}
window.Widget = new Widget();
这个问题问同样的事情,(不接受的)答案是将回调传递给$.on()
并从那里调用处理程序,将实例作为参数传递,如下所示:
bindEvents: function() {
var self = this;
$('button').on('click', function() {
self.handleClick.apply(self);
});
}
这种传递实例的技术真的是正确的方法吗,或者除了我展示的两种方法之外还有一种首选方法吗?