1

我似乎无法在谷歌中选择正确的关键字来找到这个答案,所以......

我在一个类中创建了一系列函数来处理选择框的变化。这是一个非常简单的 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) 来强制执行正确的绑定。

4

1 回答 1

1

this通过做失去你的this.doChange。使用类似的东西

function example(n) {
 this.name = n;

  var self = this;
  this.doChange = function () {
    alert(self.name);
 }
} 
于 2013-02-25T22:17:30.253 回答