閉包的九種常用場景

2021-10-02 09:56:04 字數 1701 閱讀 3664

閉包就是能夠讀取其他函式內部變數的函式

var fn = function()

}var fnc = fn();

fnc(); //zjn

對(1)的變形將內部函式的值賦給函式外部的變數
var fn0;

var fn = function()

fn0 = a;

}fn();

fn0(); //zjn

var fn0 = function(f);

var fn = function()

fn0(a);

}fn();//zjn

var fn0 = function(f);

(function()

fn0(a);

})();//zjn

function foo();

// })(i);

arr[i] = (function(n)})(i);

}return arr;

}var bar = foo();

console.log(bar[4]())

將要操作得變數儲存在函式內部,防止暴露在外部
var getvalue,setvalue;

(function()

setvalue = function(n)

})();

console.log(getvalue()) //0

setvalue(5);

console.log(getvalue());//5

setvalue('10');

console.log(getvalue());//5

function setup(arr)

}var arr = ['asd','fgh','jkl','zxc']

var next = setup(arr);

console.log(next())//asd

console.log(next())//fgh

console.log(next())//jkl

console.log(next())//zxc

console.log(next())//undefined

var firstload = (function()else;

}})();

console.log(firstload(444))//true

console.log(firstload(444))//false

避免相同資料的重複操作
function mult() 

return sum;

}console.log(mult(1,3,2,16,5,4,8,4))//43

var mult = (function();

var calc = function()

return sum;

}return function()else

}})();

console.log(mult(1,2,1,5,6,4,8,4,9))//40

console.log(mult(1,2,1,5,6,4,8,4,9))//40 from cache

JS閉包 及閉包的應用場景

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

js閉包的應用場景

js閉包的應用場景 本質 js中沒有私有變數,而閉包是是一種保護私有變數的機制,保護裡面的私有變數不受外界干擾。閉包的演進過程 統計網頁訪問的次數 1.常規方式 var counter 0 function add add add add 計數器現在為 3存在問題 任何地方都可以直接訪問counte...

閉包的應用場景二

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