代码段

function foo(){
            var a = 2;
            function bar(){
                console.log(a);
            }
            return bar;
        }
        var baz = foo();
        baz();

以上代码段就是闭包。

闭包使得函数可以继续访问定义时的词法作用域。

闭包实质:将内部函数传递到所在的词法作用域以外,内部函数仍然持有对原始定义作用域的引用。

 

once函数的实现:

 

function once(fn) {
                let called = false
                return function() {
                    if (!called) {
                        called = true
                        fn.apply(this, arguments)
                    }
                }
            }

 

相关文章:

  • 2022-12-23
  • 2021-12-12
  • 2022-02-03
  • 2021-07-05
  • 2021-08-01
  • 2021-07-29
  • 2021-08-06
  • 2021-11-18
猜你喜欢
  • 2021-11-22
  • 2022-12-23
  • 2022-01-12
  • 2021-10-31
  • 2021-09-30
  • 2021-08-29
  • 2021-12-31
相关资源
相似解决方案