假如代码如下 function callback(f) {
f();
} function foo() {
foo(); //执行1000次左右会发生堆栈溢出的错误,
//setTimeout(foo, 0); //永远不会堆栈溢出
}
foo()这是什么原理?
请问假如我自己把callback函数也定义成setTimeout这样的,应该怎么写?
f();
} function foo() {
foo(); //执行1000次左右会发生堆栈溢出的错误,
//setTimeout(foo, 0); //永远不会堆栈溢出
}
foo()这是什么原理?
请问假如我自己把callback函数也定义成setTimeout这样的,应该怎么写?
而不用setTimeout的时候,函数必须等待调用的函数返回后才能继续执行,但调用的函数又必须等待下一极函数......这样所有函数都不能结束,资源就一直不释放,故溢出 function callback(f) {
f();
setTimeout(function(){callback(f)},0);
}
谢谢wzs_xyz