回调函数、闭包函数、递归函数

本文深入探讨了JavaScript中的回调函数、闭包函数和递归函数的概念及应用。详细解释了如何使用回调函数进行事件监听和定时任务,闭包函数如何保护和操作私有变量,以及递归函数在解决复杂问题如斐波那契数列时的使用方法。

回调函数
定义:作为参数使用的函数称为回调函数

setInterval(function () {  }, 1000);
btn.addEventListener('click', function () {  });
arr.sort(function () {  });
$btn.on('click', function () {});
$(function () {  });

闭包函数
概念:能够(从外面)操作私有变量的函数,称为闭包函数
作用:确保数据安全(当某个数据需要在程序中多次使用时,才有必要设置闭包函数保存数据)

 function fun () {
            // 声明了一个私有变量
            var sum = Math.random();
            
            // 设置一个子函数,可以访问fun中的局部变量sum
            function fun2 () {
                console.log(sum);
            }
            return fun2;
        }
        
        // result在全局作用域中接收了fun内部的子函数fun2
        var result = fun();
        result();
        result();
        result();
        result();

递归函数
概念:在函数中调用自身的函数形式。
问题:
死循环:适当的时机结束递归
性能问题:适当减少执行次数

//斐波那契数列
var getFB = (function () {
    // obj设置在局部作用域中,称为私有变量
	var obj = {
		1 : 1,
        2 : 1
    };

    // 将闭包函数getFB返回到自调用函数外,作为闭包函数使用
    function getFB2 (n) {
       console.log('执行了函数');
       return obj[n] ? obj[n] : obj[n] = getFB2(n - 1) + getFB2(n - 2);
    }
       return getFB2;
})();
	   console.log(getFB(10)); // 55
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值