Вызов функции setTimeout внутри функции - Scope-Issue - PullRequest
2 голосов
/ 18 ноября 2011

Итак, проблема в том, что у меня есть функция внутри функции, которую должен вызывать setTimeout.Однако это не сработает, потому что setTimeout будет предполагать, что вызываемая им функция имеет корень в качестве своей области действия.

Есть идеи, как мне решить эту проблему, не изменяя область действия функции?

Изменить:

Вот что я имею в виду:

function general(){
    function saysomething(){
        console.log('hi there');
    }
setTimeout("saysomething();", 1000);
}

Сбой setTimeout ..

Ответы [ 2 ]

8 голосов
/ 18 ноября 2011
function general(){
    function saysomething(){
        console.log('hi there');
    }
    setTimeout(saysomething, 1000);
}
2 голосов
/ 18 ноября 2011

Не уверен, что это то, что вы имеете в виду, но вы можете передать переменные при вызове функции в setTimeout

function f1(){
    var a='1';
    var b='b';
    setTimeout(function(){f2(a,b);},1000)

}

function f2(a,b){
      alert(a + b);
}

f1();
...