js的自动用匿名函数
<script type="text/javascript">(function(x,y){alert(x+y);return x+y;})(1,2);</script>
?发现它是可以执行的。稍微研究了下分享如下:
?
function add(x,y){alert(x+y);}var a = function add(x,y){alert(x+y);}
?这两种方式,不过,在js里面有匿名函数的概念。就比如
?
function(x,y){alert(x+y);return x+y;}
?就是一个匿名函数,如果a = function(){}这种形式定义函数,那么a()就能够执行函数,因为a是这个函数的一个引用,那么匿名函数后面直接加括号能不能执行呢?结果是不能执行。要想执行,可以选择的一种方法就是把匿名函数用括号括起来,把它当作表达式来处理,这样后面加括号会执行前面的表达式。这样就出现了
?
(function(x,y){alert(x+y);return x+y;})(1,2);
?这种形式。
?
function strToJson(str){ // eval 中字符串两旁加了强制运算符() var json = eval('(' + str + ')'); return json;}