快捷搜索:  汽车  科技

javascript怎么禁止对象重写(JavaScript中解决堆栈溢出)

javascript怎么禁止对象重写(JavaScript中解决堆栈溢出)JavaScript中解决堆栈溢出,最简单的方法是将堆栈调用改成事件循环来处理。当然还有一些其它的方法,如闭包,或者优化一下现有的代码等。将nextItem函数直接运行改成加一个定时器。当item不为null,则将函数nextItem推送到事件队列,并且函数退出,从而使调用堆栈清零,看一下输出结果:没有问题。总结一下:

点击上方蓝字关注“小郑搞码事”,每天都能学到知识,搞懂一个问题!

这里,我们要解决的一个问题是,如何用最简单的方法处理JavaScript堆栈溢出的问题,所以,我们得搞一段代码,能让它产生堆栈溢出。如下

javascript怎么禁止对象重写(JavaScript中解决堆栈溢出)(1)

这是一个数组,长度为100000。其中倒数第二位的值设成了'小郑搞码事'(为了下面代码演示直观一点),其它位都是按数字顺序输出。

一,产生溢出代码

javascript怎么禁止对象重写(JavaScript中解决堆栈溢出)(2)

这段代码很容易看懂,主要利用了一个递归的方法,里面用了一个数组的pop方法,输出数据中所有的值。我们运行一下之后,就产生了堆栈溢出,如下结果:

javascript怎么禁止对象重写(JavaScript中解决堆栈溢出)(3)

将nextItem函数直接运行改成加一个定时器。当item不为null,则将函数nextItem推送到事件队列,并且函数退出,从而使调用堆栈清零,看一下输出结果:

javascript怎么禁止对象重写(JavaScript中解决堆栈溢出)(4)

没有问题。

总结一下:

JavaScript中解决堆栈溢出,最简单的方法是将堆栈调用改成事件循环来处理。当然还有一些其它的方法,如闭包,或者优化一下现有的代码等。

猜您喜欢: