使用实例方法作为事件处理程序的回调会将this
的范围从“我的实例”更改为“不管刚才叫回调的是什么”。所以我的代码看起来像这样
function MyObject() {
this.doSomething = function() {
...
}
var self = this
$('#foobar').bind('click', function(){
self.doSomethng()
// this.doSomething() would not work here
})
}
这很有效,但这是最好的方法吗?在我看来很奇怪。