閉包的講解及點贊的案例

2022-08-09 14:27:20 字數 852 閱讀 5431

1.閉包:函式在呼叫的時候會形成乙個私有的作用域,對內部的變數起到保護的作用,這就是閉包

2.變數的銷毀:

1.人為銷毀  var a=12;  a=null;

2.自然銷毀  函式呼叫完成後,瀏覽器會自動銷毀函式內的變數;

2的案例:

function fn(){

var  a=9

a++console.log(a)

fn()

fn()

fn()

3.閉包的優勢:

1.保護變數;

2.快取資料 (這是他的優勢,也是他的劣勢,函式呼叫完後會被銷毀,我們不能使用這個變數,閉包可以不讓他被銷毀,但也會影響瀏覽器的效能)

4.閉包的種類;

1.函式式閉包;

案例:function fn(){

var a=9;

function ff(){

a++console.log(a)

ff()

fn()

fn()

fn()

2.物件式閉包

function fn(){

a=45

var obj={

num:a

console.log(obj.num)

5.函式返回值的問題:

每個函式都有乙個返回值,如人為返回,return的什麼就是什麼,如果沒有就是undefined,

6.閉包怎樣快取資料;

function fn(){

var a=23

return function(){

a++console.log(a)

fn()

fn()

fn()

使用閉包的注意點

1.對捕獲的變數只是個引用,不是複製 function f num g 當函式g 第一次被執行時,f.le裡num 2 f 彈出2 說明彈出的num是對f.le裡num的引用,而不是複製 2.父函式每呼叫一次,都會建立乙個新的詞法環境,會產生不同的閉包 function f var result1 ...

什麼是閉包及閉包的優缺點

1 什麼是作用域鏈?在理解閉包以前.最好能先理解一下作用域鏈的含義,簡單來說,作用域鏈 就是函式在定義的時候建立的,用於尋找使用到的變數的值的乙個索引,而他內部的規則是,把函式自身的本地變數放在最前面,把自身的父級函式中的變數放在其次,把再高一級函式中的變數放在更後面,以此類推直至全域性物件為止.當...

JS閉包 及閉包的應用場景

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