标签:
在学习JavaScript中有一个匿名函数,它像函数但是又和经常遇到的函数不大一样。
匿名函数就是你不知道它的名字,
普通函数:
function box(){ var name='普通函数'; } alert(box());
匿名函数:
<pre name="code" class="javascript"> function(){ alert('匿名函数'); }();
想要调用匿名函数也很简单,在匿名函数函数后面加一个括号就可以,这种调用叫自执行调用。
function(){ alert('执行匿名函数'); }();
所谓的闭包函数可以理解为可以访问一个函数的变量的函数。它是一种方法嵌套,这么做可以大大减少代码量,使代码看上去清晰。
举例:比如我想要得到小于5的数。
解决方法:
<span style="font-size:14px;">//使用匿名函数解决循环取值问题 function box() { var arr = [];//定义一个数组 for (i = 0; i < 5; i++) { //循环(条件) arr[i]=function(){ //数组等于匿名函数,这里就是加了一个匿名函数来执行循环 return i; // } } return arr;//返回数组 } var b = box(); for (i = 0; i < 5; i++) { alert(b[i]()); }</span>
闭包函数:
function box() { //这个函数在前后都没有影响,因为他是被调用的。 var arr = [];//数组 for (var i = 0; i < 5; i++) { arr[i] = function (num) { //num is here return function () {//使用闭包,将匿名函数中的变量储存到内存中去 return num; } }(i);//这里可以去掉括号,执行自执行。因为将值赋给了一个变量 } return arr; } var b = box(); for (i = 0; i < 5; i++) { alert(b[i]()); }闭包函数有一个特性就是将返回结果储存到内存中,
标签:
原文地址:http://blog.csdn.net/mayfla/article/details/44310505