gpt4 book ai didi

javascript - 返回函数内的 setInterval 不起作用

转载 作者:行者123 更新时间:2023-12-02 16:37:18 24 4
gpt4 key购买 nike

我有一个类似于下面的代码。

function test(){
return function(){
setInterval(//Another Function Reference // ,1000);
}
}

我正在调用 test()();

我发现上面的代码不起作用。有人可以解释一下为什么吗?

最佳答案

您的代码中没有闭包1test 返回一个函数对象,但该 [function] 并未执行。在代码片段中,内部函数使用了 3 个闭包,将返回的函数对象分配给一个变量,然后执行该变量。返回函数对象的好处是您可以将其分配给不同的值并单独执行它们。

1问题的早期版本提到“关闭不起作用

// startInterval: interval 1 second, message: 'Hello' (default)
var startInterval = test(null, 1000);
// anotherInterval: interval 5 seconds, message: ''Hello to you too''
var anotherInterval = test('<i>Hello to you too</i>', 5000);

// execute the function objects
startInterval();
anotherInterval();

// [hithere], [time] and [result] are closed over
function test(hithere, time){
hithere = hithere || 'Hello';
time = time || 1000;
var result = document.querySelector('#result');
return function(){
setInterval(function(){
result.innerHTML += hithere+'<br>';
},time || 1000);
}
}
<div id="result">Greetings!<hr></div>

关于javascript - 返回函数内的 setInterval 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27819108/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com