присваивание f подходящего значения this в setTimeout (f, t) - PullRequest
0 голосов
/ 16 августа 2011

Есть ли способ вызвать setTimeout (f, t), так что f присваивается «это» по выбору?

1 Ответ

0 голосов
/ 22 сентября 2011

Я так понимаю, это вопрос Javascript. Я не знаю, что вы можете сделать это, используя нативный setTimeout, и (видимо, как вы) я не смог найти никакой документации, указывающей, что вы можете. Но вы, конечно, можете бросить тот, который делает:

var setTimeoutEx = function(f, t, theThis){
    return setTimeout(function(){
        return f.apply(theThis, arguments);
    }, t);
};

РЕДАКТИРОВАТЬ: возможно, вы просто использовали бы Function.bind для повторного связывания this в f.

В зависимости от вкуса вы можете даже переопределить setTimeout в соответствующей области; Хотя, вероятно, я бы не стал, поскольку это может нарушить предположения читателей.

...