匿名函数和闭包

本文详细介绍了JavaScript中的匿名函数及其与普通函数的区别,并解释了闭包的概念和作用,通过示例展示了如何利用匿名函数解决循环取值问题以及闭包在实际编程中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

       在学习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]());
}
闭包函数有一个特性就是将返回结果储存到内存中,



评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值