javascript中闭包的真正作用

Posted lele

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript中闭包的真正作用相关的知识,希望对你有一定的参考价值。

参考阮一峰的文章:http://javascript.ruanyifeng.com/grammar/function.html#toc23

1. 读取函数内部变量,封装一些私有属性

function Person(name) {
  var _age;
  function setAge(n) {
    _age = n;
  }
  function getAge() {
    return _age;
  }

  return {
    name: name,
    getAge: getAge,
    setAge: setAge
  };
}

var p1 = person(‘张三‘);
p1.setAge(25);
p1.getAge() // 25

2. 读取函数变量,使得这些变量常驻内存中

function createIncrementor(start) {
  return function () {
    return start++;
  };
}

var inc = createIncrementor(5);

inc() // 5
inc() // 6
inc() // 7

 

以上是关于javascript中闭包的真正作用的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript之闭包(重新认识)

JavaScript作用域链

简明英语的 Javascript 闭包和副作用? (分别地)

Javascript——闭包作用域链

javascript中的闭包

JavaScript ---- 闭包(什么是闭包,为什么使用闭包,闭包的作用)