當前位置:編程學習大全網 - 源碼下載 - 關於閉包 vue3 防抖 節流

關於閉包 vue3 防抖 節流

閉包好像成了面試題必考,幹脆就學壹下。

我暫時理解的閉包:壹個函數中嵌套著另壹個函數,這個函數就是閉包。閉包不會內存泄露,也不會被清除。所以不能濫用,濫用會導致內存過大。

//開始學習:

基礎的概念:JS的執行上下文。就是JS是有作用域的,壹個全局作用域,壹個是函數裏面的塊級作用域。

日常使用閉包的地方:防抖、節流。

防抖:執行多次後的最後壹次。比如10秒內點了10下button,執行的是第十下click事件,在延遲多少秒後。

節流:在10秒內執行第壹次點擊、在第二個10秒執行第二個10s的第壹次點擊。

``var timer = null,

last = 0;

//請把這個放外面

const methods = {

fd() {

methods.debounce(add, 1000);

},

jl() {

methods.throttle(addjl, 700);

},

// 節流

throttle(fn, delay) {

return (function (...args) {

var nowTime = Date.now();

if (nowTime - last > delay) {

last = nowTime;

fn.call(this, args);

}

})();

},

// 防抖

debounce(fn, delay) {

return (function (...args) {

if (timer) {

clearTimeout(timer);

}

timer = setTimeout(() => {

fn.call(this, args);

// console.log("");

// fn();

}, delay);

})();

},

};`

vue3和傳統的防抖不執行,再return function(){}() //要加上立即執行

  • 上一篇:如何使用HttpClient
  • 下一篇:Cbt源代碼是免費的。
  • copyright 2024編程學習大全網