[JavaScript-09]闭包函数 IIFE函数自调用

1. 闭包函数

// 闭包函数
var a = 123;
function f1()
{
    console.log(a);
    var b =234;
    function f2()
    {
        console.log(b);
    }
    return f2;
}

// 打印a 123 result 被赋值为f2函数
var result = f1();
// 调用f2函数 打印b 234
result();
// 再次调用f2 打印b 234
// 由于f2函数没有返回值,log显示f2的函数为undefined
console.log(result());

2. 计数器

// 计数器
function aa()
{
    var start = 0;
    // 每次从function b调用,不会重新赋值start=0
    function b()
    {
        return start++
    }
    return b
}
var inc = aa();
console.log(inc());
console.log(inc());
console.log(inc());
inc = null;

3. IIFE

// IIFE自调用函数
// (function(){})();
// !(function(){})()
(function(){console.log('object');})();

// 计数器一
// var a = 0;
// function aaa()
// {
//     return ++a;
// }
// console.log(aaa());
// console.log(aaa());
// console.log(aaa());

// 计数器二
var add =
(
    function ()
    {
        var count = 0;
        return function ()
        {
            return ++count;
        }
    }
)();
console.log(add());
console.log(add());
console.log(add());
posted @ 2022-11-10 17:53  LeoShi2020  阅读(33)  评论(0)    收藏  举报