JavaScript-javascript函数名叫eval引起的一些特殊情况
这个会出现什么情况?
function eval(str) {
eval(str);
}
eval('alert(1);');
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
这个会出现什么情况?
function eval(str) {
eval(str);
}
eval('alert(1);');
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(1)
报错:Uncaught RangeError: Maximum call stack size exceeded
自己写了个eval函数,隐藏了系统的eval函数,导致重复调用,致使栈溢出。
2.正常弹出。
自己写了个eval函数,隐藏了系统的eval函数,第4行调用的是自己写的eval,然后显示地调用了系统的eval,代码被执行。
3.正常弹出。
里面有的eval是形参名或自定的属性名,可以改成别的:
aa = function(bb){
return function(str){
bb(str);
}
}(eval);
aa('alert(1)');
这样就清晰多了。