Js的闭包会有哪些作用?

原创
小哥 3年前 (2022-11-14) 阅读数 39 #大杂烩

简单地说,闭包是函数返回的内部函数,内部函数保存当前词法范围的外部函数的变量或状态,允许我们通过返回的内部功能在词法环境之外自由地操作外部函数的私有变量。

在javascript关闭主要解决两件事:
1.读取和操作外部函数的私有变量。
2.外部函数的私有变量不会被清除,并且始终在内存中。
让我们来看看栗子的用途:

const foo = (function() {
  let a = 1;

  return {
    getA: function() {
      return a;
    },
    setA: function(val) {
      a = val;
    }
  };
})();

console.log(foo.getA()); // 1
foo.setA(123);
console.log(foo.getA()); // 123

我们使用一个自动执行的匿名函数,原则上无法从外部获取内部信息。a变量,但我们传递返回。getA和setA它可以操作。

内容来源:
作者:陈先仁
链接:https://www.zhihu.com/question/373459049/answer/1031946055
来源:知乎

版权声明

所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除

热门