简单认识 JavaScript 闭包

函数的闭包就是父函数嵌套子函数,子函数可以引用父函数的变量,而父函数不可以使用子函数的变量。

成都创新互联专注于企业营销型网站建设、网站重做改版、张家口网站定制设计、自适应品牌网站建设、html5购物商城网站建设、集团公司官网建设、成都外贸网站建设公司、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为张家口等各大城市提供网站开发制作服务。

function outerFun() {
  let a = 10;
  return function (x) {
    if (x) {
      return (a = x);
    } else {
      return a;
    }
  };
}

let innerFun = outerFun();
let b = innerFun(10);
let c = innerFun(20);
let d = innerFun();

console.log(b, c, d); // => 10 20 20

第二个innerFun修改父函数变量a之后,第三个innerFun直接获取结果,发现返回的是 20,说明返回的是上一次的结果。因此,函数闭包可以保存父函数的变量。

单个函数内定义的变量,使用之后就销毁,不保存函数的变量。

function fun(x) {
  let a = 10;
  if (x) {
    return (a = x);
  } else {
    return a;
  }
}

let b = fun(10);
let c = fun(20);
let d = fun();

console.log(b, c, d); // => 10 20 10

发现每一次使用都是新的变量,执行一次就释放,也不保存,重新执行就重新赋值变量a


网站名称:简单认识 JavaScript 闭包
标题路径:http://ybzwz.com/article/dsojghs.html