……

JS中的eval()函数使用

eval()函数可以计算某个字符串,并且执行其中的JavaScript代码

其中一些基础的使用可以参考这个地址:https://www.w3school.com.cn/jsref/jsref_eval.asp

这篇文章的主要目的是说下,eval()函数如果调用匿名函数该如何使用:

 1 <!DOCTYPE html>
 2 <html>
 3 <body>
 4 
 5 <h1>把字符串转换为函数</h1>
 6 
 7 <p id="demo"></p>
 8 
 9 <script>
10 var text = '{"name":"Bill Gates", "age":"function() {return 62;}", "city":"Seattle"}';
11 var obj = JSON.parse(text);
12 obj.age = eval("(" + obj.age + ")");  //这里加(),是因为执行的是一个匿名函数
13 document.getElementById("demo").innerHTML = obj.name + ", " + obj.age(); 
14 </script>
15 
16 </body>
17 </html>

 

如上所示,如果要执行匿名函数,需要先加个“()”这其实和JS自调用的语法有点相似,只不过eval()它不允许调用的函数传参,而自调用函数可以传参。

自调用例子:

 1 //函数的自调用
 2 //一次性函数
 3 (function (){
 4     console.log("一次性");
 5      
 6 })();            //无参
 7 (function(win){
 8     var num=20;
 9     win.num=num;
10 })(window);      //有参

 但是,应该避免在 JSON 中使用函数,因为函数会失去其作用域,而且还需要使用 eval() 将它们转换回函数,这样太麻烦了。

posted on 2020-07-02 17:29  钱不够用阿  阅读(684)  评论(0)    收藏  举报