关于js中闭包的理解

Posted 阿诺施瓦小北

tags:

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

  1、以前很不理解js中闭包的概念及使用,下面来看一下

   

  function foo() {
  var a = 123;
  var b = 456;
  return function () {
  return a;
    }
  }
  var fn = foo();

  上面的代码只能访问 a和b,但是不能修改,这是js中闭包的技术之一

  

  function foo() {
  var a = 123;
  var b = 456;
  return {
  get_a: function () {
  return a;
  },
  set_a: function (value) {
  a = value;
  },
  get_b: function () {
    return b;
  },
  set_b: function (value) {
  b = value;
      }
    }
  }

  var o = foo();
  console.log(o.get_a());
  console.log(o.get_b());

  o.set_a("abc");
  console.log(o.get_a());

  2、根据上面的输出结果可以知道将return值写成对象的形式,就可以对函数内的数据进行修改了,这就是js中闭包的第二项技术

  3、通过上面的代码可以看到闭包的好处之一使你的代码更安全,而且更有利于维护

  4、上面的代码都是对闭包的初级理解和体验,以后会对闭包的实际应用做更多的介绍

 

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

关于js闭包的一些浅层面的理解

关于闭包的理解(JS学习小结)

关于js里的this指向,函数的prototype,闭包理解

关于闭包的一些文章

关于闭包的理解记录

关于闭包