小编Mar*_*ark的帖子

为什么gmail使用eval?

这个问题表明,使用eval是一种不好的做法,许多其他问题表明它是"邪恶的".

这个问题的答案表明,使用eval()可能有助于其中一种情况:

  • 评估从远程服务器收到的代码.(假设您想通过向其发送JavaScript代码来创建可以远程控制的站点?)
  • 评估用户编写的代码.如果没有eval,则无法编程,例如,在线编辑器/ REPL.
  • 动态创建任意长度的函数(function.length是只读的,所以唯一的方法是使用eval).
  • 加载脚本并返回其值.例如,如果您的脚本是自调用函数,并且您想要对其进行求值并得到它的结果(例如:my_result = get_script_result("foo.js")),那么编写函数get_script_result的唯一方法就是使用在里面评估.
  • 在不同的闭包中重新创建一个函数.

在查看Google帐户页面时,我发现了以下内容:

(function(){eval('var f,g=this,k=void 0,p=Date.now||function(){return+new Date},q=function(a,b,c,d,e){c=a.split("."),d=g,c[0]in d||!d.execScript||d.execScript("var "+c[0]);for(;c.length&&(e=c.shift());) [a lot of code...] q("botguard.bg.prototype.invoke",K.prototype.ha);')})()</script>
Run Code Online (Sandbox Code Playgroud)

我只是无法得到它是如何有用的,因为它与上述任何情况都不匹配.有评论说:

 /* Anti-spam. Want to say hello? Contact (base64)Ym90Z3VhcmQtY29udGFjdEBnb29nbGUuY29tCg== */
Run Code Online (Sandbox Code Playgroud)

我看不出eval将如何用作反垃圾邮件.有人可以告诉我为什么在这个特定情况下使用它?

javascript gwt eval

5
推荐指数
2
解决办法
7753
查看次数

标签 统计

eval ×1

gwt ×1

javascript ×1