第一种:(作为赋值用)
1、将一个匿名函数赋值给一个变量x,此时的x是变量名,不是函数名;
2、因为下面的这句代码是赋值语句,所以需要在最后加一个“分号”;
3、定义函数的时候是不需要加“分号”的。
【例】:var x=function (){alert(‘你好!‘);};
第二种:定义匿名函数的时候直接调用该函数
【例】:(function(x,y){alert(‘x+y‘);})(10,50)
第三种:
1、var f1=new function(‘x‘,‘y‘,‘z‘,‘alert(x+y+z);‘);
2、var f2=new function(‘x,y,z‘,‘alert(x+y+z);‘);
f1(10,20,30);
【解析】:通过new function()的方法定义匿名函数,可以将函数代码用字符串来表示,同时在函数中使用的变量,不会作为页面的“全局变量”出现,在函数外部也访问不到。(不像eval()一样)
关于eval():
把字符串当做JS代码来解析执行(外部也能访问得到)
【例】:var n=‘var x=1;x++;alert(x);‘;
alert(n); //返回var x=1;x++;alert(x);
eval(n); //返回2
原文:http://www.cnblogs.com/pengyouqiang88/p/5100398.html