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. 提供另一種封裝思路
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章