我似乎无法在谷歌中选择正确的关键字来找到这个答案......
我在类中创建了一系列函数来处理选择框更改。这是一个关于javascript如何布局的一个非常简单的例子
function example(n) {
this.name = n;
}
example.prototype.setChange(i) {
var c = document.getElementById('test' + i );
for ( var x = 0; x < 10; x++
c.options[0] = new Option(x, x);
c.change = this.doChange;
}
example.prototype.doChange() {
alert(this.name);
}
一切正常,直到我尝试访问'this'。调用doChange时,这是实际的select html对象而不是类。因为这是一个事件,我不能使用.call(this)来强制执行正确的绑定。
答案 0 :(得分:1)
您通过执行this
来放弃this.doChange
。使用像
function example(n) {
this.name = n;
var self = this;
this.doChange = function () {
alert(self.name);
}
}