gpt4 book ai didi

javascript - 这段代码会导致堆栈溢出吗? Javascript 设置超时()

转载 作者:行者123 更新时间:2023-11-30 12:45:13 26 4
gpt4 key购买 nike

我有以下代码,我想知道这是否会导致堆栈溢出。我不熟悉 setTimeout 函数的处理方式及其后果。

function func1() {
// some logic for the dynamicTimeout
setTimeout("func2()", dynamicTimeout);
}

function func2() {
// do something
func1();
}

最佳答案

setTimeout调度一个函数在延迟后执行,并且“调度器”函数的堆栈不被保留,因此不会由于setTimeout而直接发生堆栈溢出。 .

通常,许多浏览器对以这种方式调度的函数强制执行最小超时(因此,即使您将 0 作为超时值传递,或者根本不传递,该函数也不会立即被调度)。即使不是这种情况,该函数也会被添加到等待操作的队列中,如果执行其他操作,该函数将被延迟。

作为旁注,有 no need to pass a string to setTimeout .它得到 eval 'd,这有时是不安全的,而且通常很慢。最好只传递一个函数引用:setTimeout(func2, dynamicTimeout) .

关于javascript - 这段代码会导致堆栈溢出吗? Javascript 设置超时(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22739490/

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