js閉包的應用場景

2021-10-07 04:15:08 字數 806 閱讀 2549

js閉包的應用場景

本質:js中沒有私有變數,而閉包是是一種保護私有變數的機制,保護裡面的私有變數不受外界干擾。

閉包的演進過程-統計網頁訪問的次數

1.常規方式:

var counter = 0;

function add()

add();

add();

add(); // 計數器現在為 3

存在問題:任何地方都可以直接訪問counter,並修改其值,造成不安全的因素。

2.修改變數為方法內部變數:

function add() 

add();

add();

add(); // 本意是想輸出3, 但輸出的都是1

存在問題:方法內的區域性變數每次會重新賦值,統計結果錯誤。

3.使用閉包:本質使用內嵌函式

function count() 

}let add=count();

add();

add();

add(); //結果為3

說明:

將變數定義為私有屬性,外部只能通過add()方法訪問。

統計結果正確。

上面可以簡化**如下:

var add = (function () 

})();

add();

add();

add(); //結果為3

JS閉包 及閉包的應用場景

閉包 如大家所知,通俗講,可以訪問其他函式內部變數的函式 建立閉包最常見的方式函式作為返回值 function fn let log fn log 列印 小帆 外部函式訪問內部變數 下面來實現乙個簡單的demo 計數器 var number 0 function creat creat 確實實現了需...

閉包的應用場景二

閉包的應用場景一 閉包的應用場景二 閉包的應用場景三 閉包的應用場景 1.使用閉包代替全域性變數 2.函式外或在其他函式中訪問某一函式內部的引數 3.在函式執行之前為要執行的函式提供具體引數 4.在函式執行之前為函式提供只有在函式執行或引用時才能知道的具體引數 5.為節點迴圈繫結click事件,在事...

mysql閉包錶應用場景 閉包的理解和應用場景

1.什麼是閉包?在了解閉包之前,我們要清楚js的另乙個知識,那就是作用域鏈。什麼是作用域鏈,比如乙個函式裡面包含著另乙個函式,裡面的函式在使用乙個變數的時候會在函式自己的作用域內去查詢這個變數,如果沒有,就會沿著作用域鏈向上級函式的作用域去查詢,這樣的乙個過程我們就叫做作用域鏈。作用域鏈是可以有函式...