永发信息网

javascript为什么这样会无限递归自己,从而造成死循环并且溢出?

答案:2  悬赏:10  手机版
解决时间 2021-12-16 20:59
var $$ = ajQuery = function(selector) {
this.selector = selector;
return new ajQuery(selector);
}
最佳答案
我先来解释无限递归

先举一个生活中的例子,就是那个经典的《老和尚给小和尚讲故事》的故事:
从前有座山,山里有个庙,庙里有个老和尚给小和尚讲故事。
讲的是什么故事呢?
讲的是:
从前有座山,山里有个庙……

这就是无限递归了。

再来说一下你的程序发生无限递归的原因:
ajQuery 是一个函数。执行这个函数时,函数中的 return 语句会返回一个值。
它会返回什么值呢?
返回值是执行一个新的 ajQuery 函数的返回值,
那么这个新的 ajQuery 函数会返回什么值呢?
这个新的 ajQuery 函数会返回又一个新的 ajQuery 函数的返回值,
……

这是无限递归,也是一种死循环。

最后说一下发生溢出的原因:
每次执行 ajQuery 函数,
都会在结束前执行又一个新的 ajQuery 函数,
并等待它结束,然后自身才能结束。
每执行一个函数都要占用一些资源,只有函数结束后才有可能释放这些资源。
可是,在无限递归过程中,不断地执行一个又一个函数,却从不结束这些函数。
所以,占用的资源就会越来越多。
直到占用的资源超出了允许的范围,就溢出了!
全部回答
任务占坑
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
lim2x∧2+x除x∧2+1=2
锦鲫鱼缸养一年能长多重
无病无伤残八九十岁农村老人符合办低保吗
铺下村地址在什么地方,我要处理点事
天津华苑产业园区有什么公司
关于一篇抄表员工作中的好人好事!!!快!急
qq魔法卡片精灵走失召回后,等级会变回一级么
到酒店做兼职服务,应该注意些什么啊?
被电子警察拍到闯红灯处理有时间限制吗
宝马X5怠速不稳忽高忽低
红枣大小不一和营养多少有关吗
看许多美景之后什么的感觉是填美不胜收还是目
勾兑的白酒配料表是怎样的?
阿瞳的眼保仪好还是健亮的好啊?我都近视400
人鱼的旋律(真珠美人鱼)第三集中詹妮弗·休
推荐资讯
口袋妖怪梦的光点头领蛙进化
16÷25简算怎么做,????
若|x|<4,则x的所有整数解的和为________.
简历怎么写?大专学历,刚毕业,没什么经验?
stm8产生的pwm怎么关断
魔兽在联网游戏时能否保存?
谁知道电影《蜘蛛侠》中饰演蜘蛛人的演员叫什
淘宝卖家怎么用淘宝免费帐户登陆全球e站
单选题“绿色化学”又称环境无公害化学。下列
顺序,倒叙,插叙在作文中是属于什么
读秦岭北坡陡峭的断崖示意图,形成秦岭北坡断
在一幅条形统计图里,用2厘米长的直条表示800
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?