最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JS閉包原理及其使用場景解析

 更新時間:2020年12月03日 09:31:07   作者:愛折騰的王先生  
這篇文章主要介紹了JS閉包原理及其使用場景解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

閉包定義

可以通過內(nèi)層函數(shù)訪問外層函數(shù)的作用域的組合叫做閉包。

閉包使用場景

使用閉包來實現(xiàn)防抖

function debounce(callback, time) {
  var timer;
  return function () {
    if (timer) {
      clearTimeout(timer)
    }
    timer = setTimeout(() => {
      callback()
    }, time)
  }
}<br data-filtered="filtered"><br data-filtered="filtered">window.onresize = debounce(() => {console.log(666)},500)

使用閉包設(shè)計單例模式

class Car{
  constructor(color){
    this.color = color
  }
}
var proxy = (function createCar() {
  var instance;
  return function (color) {
    if (!instance) {
      instance = new Car(color)
    }
    return instance
  }
})()
var car = proxy('white')

使用閉包遍歷取索引值(古老的問題)

for (var i = 0; i < 10; i++) {
  setTimeout(function(){console.log(i)},0) //10個10
}
for (var i = 0; i < 10; i++) {
  (function(j){
    setTimeout(function(){console.log(j)},0) // 0 - 9
  })(i)
}

閉包性能

因為閉包會使外層函數(shù)作用域中的變量被保存在內(nèi)存中不被回收,所以如果濫用閉包就會導(dǎo)致性能問題,謹(jǐn)記。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

博湖县| 石屏县| 麟游县| 凌海市| 阿城市| 石景山区| 长治市| 寿宁县| 汝州市| 长治市| 博兴县| 塔城市| 封丘县| 临潭县| 遂昌县| 宜州市| 泸定县| 都安| 孝昌县| 寻甸| 广昌县| 浏阳市| 宁安市| 乐昌市| 黄平县| 盈江县| 乌鲁木齐市| 凤翔县| 常宁市| 枣强县| 韩城市| 琼中| 石景山区| 宁波市| 安平县| 获嘉县| 叶城县| 郧西县| 图木舒克市| 稷山县| 襄城县|