Javascript 从变量调用setTimeout函数

Javascript 从变量调用setTimeout函数,javascript,Javascript,我已经为setTimeout函数定义了一个变量,以便以后可以清除它。那部分有效。我从变量调用setTimeout函数时遇到问题,我想我不理解语法 var idOne = setTimeout(function() { //do stuff here custom(); //callback }, 2000); function custom() { //do stuff here idOne; } custom(); 特别是idOne部分我觉得必须是错误的。

我已经为setTimeout函数定义了一个变量,以便以后可以清除它。那部分有效。我从变量调用setTimeout函数时遇到问题,我想我不理解语法

var idOne = setTimeout(function() {
    //do stuff here
    custom(); //callback
}, 2000);

function custom() {
    //do stuff here
    idOne;
}

custom();
特别是
idOne部分我觉得必须是错误的。JsHint说它什么也没做。我搞不懂语法

var idOne = setTimeout(function() {
    //do stuff here
    custom(); //callback
}, 2000);

function custom() {
    //do stuff here
    idOne;
}

custom();
编辑

明白了!这是最后的代码

var idOne;
var timeoutOne = function(){
    idOne = setTimeout(function(){
        //stuff
        custom();
    }, 2000);
}

function custom() {
     //do stuff
     timeoutOne();
}
然后,当我想清除它时,我使用:

clearTimeout(idOne);

setTimeout函数返回一个
数字
,可用于
清除超时
。我想,你想做的是定义一个函数

var myFunction = function () { 
    idOne = setTimeout(function() {
         custom();
    }, 2000);
}

function custom() {
    myFunction();
}

custom();
最后,要
清除超时

clearTimeout(idOne);

你到底想干什么?
idOne
变量将只是一个int值,它是对您存储的计时器的引用。另外,
do
是一个保留关键字:
do
是一个关键字。那根本不应该起作用。也就是说,
setTimeout
的返回只是为了在您决定不想运行函数时使用
cleartimout
。我希望setTimeout链接到一个变量,这样我就可以cleartimout(变量)。我想从函数中的变量运行这个setTimeout。我是新来的。没有意识到使用了do。我会更改它。您所拥有的将起作用,您只需调用
clearTimeout(idOne)
。但是,请注意,您当前的模式会使这变得多余,因为在清除超时之前,超时已经执行了。问题是它没有通过setTimeout函数运行。然后我能用clearTimeout(idOne)清除它吗;?谢谢你的帮助!在这种情况下,检查更新,现在您可以
clearTimeout(idOne)
cleartimout(idOne)
之所以可能,是因为
idOne
是一个全局变量。声明时,
var
被省略。这使变量成为一个隐式全局变量,我不知道这是如何工作的。基本上,我需要将一个变量定义为setTimeout函数,并在另一个函数的末尾使用该变量运行它,这样我就可以用另一个函数远程清除它。我遇到的问题是如何通过变量启动setTimeout函数。这里的内容似乎只是定义了idOne变量,而不是运行函数(除非我误解了所有可能的事情)。@TomH
idOne
不是对setTimeout函数的引用。您可以使用它取消超时,但不能再次启动超时。你需要两个变量,就像这个答案所示:一个启动计时器,一个停止计时器。