| 
 Как заставить this в обработчике события указывать на объект? Здравствуйте! Есть такой код: 
function Cls()
{
    this.a = 1;
    document.getElementById("imgId").onclick = this.f1;
}
Cls.prototype.f1 = function()
{
    alert([this.a, this === window]);
}
var ob = new Cls();
ob.f1(); // 1, false
Для его работы, на странице должен распологаться контрол img с идентификатором imgId. Проблема в том, что в обработчике события this указывает на элемент управления, который вызвал это событие (в данном случае на картинку imgId). А нужно, чтобы this указывал на тот контекст, в котором обработчик события был подключен (т.е. на ob, т.к. подключили обработчик в конструкторе ob). Если я правильно понял философию JavaScript, то это традиционная задача и все с этим сталкиваются. Как обычно решают эту проблему? | 
| 
 Цитата: 
 http://javascript.ru/tutorial/object/thiskeyword | 
| 
 
function Cls()
{
    this.a = 1;
    var obj = this;
    document.body.onclick = function() {
        obj.f1();
    };
}
 | 
| 
 Я использую метод apply. | 
| Часовой пояс GMT +3, время: 20:58. |