setTimeout调用函数内部函数 - Scope-Issue

时间:2011-11-18 18:15:21

标签: javascript scope settimeout

所以,问题是我在一个需要由setTimeout调用的函数内部有一个函数。 但这不起作用,因为setTimeout将假定它调用的函数将root作为其“范围”。

知道如何在不改变功能范围的情况下解决这个问题吗?

编辑:

这就是我的意思:

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

setTimeout失败..

2 个答案:

答案 0 :(得分:7)

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

答案 1 :(得分:2)

不正确这是你的意思,但你可以在setTimeout中调用函数时传递变量

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

}

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

f1();