js基础之闭包

js闭包听上去可能不好理解但是可以粗略的理解为:

    供外部访问内部方法/变量的机制

由于js链式作用域链的存在,导致外部无法直接调用内部变量,所以如果将内部变量直接return出来,不久解决了么

直接上测试代码:

function  f1(){
    var i=999;
    var  f2=function () {
        alert(i);
    }

    return f2;
}

$(function () {
   var result= f1();
    result();
});

闭包的第二个作用是:

   让这些变量的值始终保持在内存中

直接上例:

function  f1(){
    var i=999;
    var  f2=function () {
        alert(++i);
    }

    return f2;
}

$(function () {
   var result= f1();
    result();
    result();
});

总结:

  1. 提供外部访问内部的接口
  2. 数据保存在内存中
  3. 提供另一种封装思路
发布了52 篇原创文章 · 获赞 2 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/liz9411/article/details/103608980