递归 arguments.callee.caller 死循环的问题
园子搜到的问题: http://www.cnblogs.com/jkisjk/archive/2012/06/01/2531004.html
和我的情况很相似。
我使用 getDoer 查找事件源,通过 arguments.callee.caller 递归查找,出现死循环的原因是: 我在函数中使用了递归,而且是在 $.each 里 ! 也就是 caller链中有时会有闭环
方案:
1.把 $.each 改为 for
2.在 递归调用自己的方法,添加最后的参数: { originalEvent: true, target: jv.GetDoer() }
另外:
在FireFox 下,如果 函数头部有如下代码:
"use strict";
则会报: access to strict mode caller function is censored
很奇怪的问题,去掉 "use strict"; 就好了,换成其它字符串也没有问题。
作者:NewSea 出处:http://newsea.cnblogs.com/
QQ,MSN:iamnewsea@hotmail.com 如无特别标记说明,均为NewSea原创,版权私有,翻载必纠。欢迎交流,转载,但要在页面明显位置给出原文连接。谢谢。 |