2013-02-25 1 views
1

я не могу, кажется, выбрать правильные ключевые слова в Google, чтобы найти этот ответ так ...Javascript OnChange выберите Юридически обязательный Issue

Я создаю ряд функций внутри класса для обработки выберите изменения окна. Вот очень простой пример того, как 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); 
} 

Все работает найти, пока я пытаюсь получить доступ к «это». Когда вызывается doChange, это фактический объект select html вместо класса. Поскольку это событие, я не могу использовать .call (this), чтобы обеспечить правильные привязки.

+1

Этот код даже не синтаксически корректен. –

ответ

1

Вы теряете свой this, делая this.doChange. Используйте что-то вроде

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

    var self = this; 
    this.doChange = function() { 
    alert(self.name); 
} 
} 
+0

именно это я и пытался найти. благодаря – JDMX

Смежные вопросы