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

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

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

你可能感兴趣的:(javascript)