【发布时间】:2011-08-19 19:08:53
【问题描述】:
我知道在下面的代码中,如果我单击按钮,它将打印出undefined,因为this.field 成为按钮的上下文而不是Container。我的问题是当this.func 被传递给另一个函数时,我如何访问this.field 的Container,该函数与Container 的上下文范围不同。
function Container(){
this.field = 'field';
$('button').click(this.func);
}
Container.prototype.func = function(){
console.log(this.field);
}
我知道我可以做到这一点,但有更好的方法吗?因为我宁愿在构造函数之外定义方法,所以我不会弄乱它。
function Container(){
var thisObj = this;
this.field = 'field';
$('button').click(function(){ console.log(thisObj.field) });
}
【问题讨论】:
标签: javascript jquery oop