成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

js函數(shù)節(jié)流和閉包

weknow619 / 3308人閱讀

摘要:今天解決了一個小程序中函數(shù)節(jié)流的問題小記以下。定義一個函數(shù)函數(shù)里面定義一個變量返回一個匿名函數(shù)匿名函數(shù)里面操作這個變量使用的時候調(diào)用返回的匿名函數(shù),可以用一個變量來接受一個簡單的計數(shù)器代碼如下

今天解決了一個小程序中函數(shù)節(jié)流的問題 小記以下。
節(jié)流 lodash中是throttle()那個函數(shù),改天可以去研究下源碼
下面是我自己實現(xiàn)的節(jié)流函數(shù)

  getClickTagFunc(){
     //定義一個標識,用來判斷是否繞過下面匿名函數(shù)的判斷
     let canRun = true
     //這個函數(shù)在onLoad()的時候就被調(diào)用
     //會返回一個匿名函數(shù),這個匿名函數(shù)會被存在data里
     return function(id, isLiked){
        //匿名函數(shù)會在父作用域中去尋找canRun 如果是false 則不再執(zhí)行下面的代碼 return 掉
       if(!canRun) return false
       //繞過判斷之后 立即把父作用域內(nèi)的值設為false 這個是關鍵 由于canRun是false 所以200毫秒之內(nèi)這個函數(shù)再被調(diào)用 就會直接被 return 掉
       canRun=false
        setTimeout(() => {
         
         dosomething......
         //做完想做的事情之后 把canRun設置為true 這樣dosomething才會再次被調(diào)到。通常dosomething這里會是一個回調(diào)函數(shù)
         canRun=true
      
    }, 200)      
   }
}, 

節(jié)流簡單點說就是稀釋函數(shù)被調(diào)用的頻率
然后還有一個就是閉包,之前一直不明白閉包要用在什么地方,今天算是初步弄明白了??梢宰尵植孔兞坎槐恢刂茫ǔ碚f 這是需要一個全局變量的。但是通過一個閉包也能完成。

1.定義一個函數(shù)
2.函數(shù)里面定義一個變量
3.返回一個匿名函數(shù)
4.匿名函數(shù)里面操作這個變量
5.使用的時候調(diào)用返回的匿名函數(shù),可以用一個變量來接受

一個簡單的計數(shù)器 代碼如下

 function count(){
    let x = 0 
    return function(){
        console.log(x++) 
    }
}

let run = count()

setInterval(() => {
  run()
}, 200);

文章版權歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/105559.html

相關文章

  • JS實現(xiàn)函數(shù)節(jié)流防抖

    摘要:函數(shù)的節(jié)流當持續(xù)觸發(fā)事件時,保證一定時間段內(nèi)只調(diào)用一次事件處理函數(shù)。也就是一個函數(shù)執(zhí)行一次后,只有大于設定的執(zhí)行周期后才會執(zhí)行第二次。記憶法讓函數(shù)執(zhí)行者冷靜下來后不一直抖動后,才真正執(zhí)行。 1.函數(shù)的節(jié)流 當持續(xù)觸發(fā)事件時,保證一定時間段內(nèi)只調(diào)用一次事件處理函數(shù)。也就是一個函數(shù)執(zhí)行一次后,只有大于設定的執(zhí)行周期后才會執(zhí)行第二次。記憶法:聯(lián)系到水流的流量,我想讓你1s只流出多少水你就只能...

    cnsworder 評論0 收藏0
  • JS實現(xiàn)函數(shù)節(jié)流防抖

    摘要:函數(shù)的節(jié)流當持續(xù)觸發(fā)事件時,保證一定時間段內(nèi)只調(diào)用一次事件處理函數(shù)。也就是一個函數(shù)執(zhí)行一次后,只有大于設定的執(zhí)行周期后才會執(zhí)行第二次。記憶法讓函數(shù)執(zhí)行者冷靜下來后不一直抖動后,才真正執(zhí)行。 1.函數(shù)的節(jié)流 當持續(xù)觸發(fā)事件時,保證一定時間段內(nèi)只調(diào)用一次事件處理函數(shù)。也就是一個函數(shù)執(zhí)行一次后,只有大于設定的執(zhí)行周期后才會執(zhí)行第二次。記憶法:聯(lián)系到水流的流量,我想讓你1s只流出多少水你就只能...

    浠ラ箍 評論0 收藏0
  • JS實現(xiàn)函數(shù)節(jié)流防抖

    摘要:函數(shù)的節(jié)流當持續(xù)觸發(fā)事件時,保證一定時間段內(nèi)只調(diào)用一次事件處理函數(shù)。也就是一個函數(shù)執(zhí)行一次后,只有大于設定的執(zhí)行周期后才會執(zhí)行第二次。記憶法讓函數(shù)執(zhí)行者冷靜下來后不一直抖動后,才真正執(zhí)行。 1.函數(shù)的節(jié)流 當持續(xù)觸發(fā)事件時,保證一定時間段內(nèi)只調(diào)用一次事件處理函數(shù)。也就是一個函數(shù)執(zhí)行一次后,只有大于設定的執(zhí)行周期后才會執(zhí)行第二次。記憶法:聯(lián)系到水流的流量,我想讓你1s只流出多少水你就只能...

    melody_lql 評論0 收藏0
  • 徹底弄懂函數(shù)防抖函數(shù)節(jié)流

    摘要:若時間差大于間隔時間,則立刻執(zhí)行一次函數(shù)。不同點函數(shù)防抖,在一段連續(xù)操作結束后,處理回調(diào),利用和實現(xiàn)。函數(shù)防抖關注一定時間連續(xù)觸發(fā)的事件只在最后執(zhí)行一次,而函數(shù)節(jié)流側重于一段時間內(nèi)只執(zhí)行一次。 原博客地址,歡迎star 函數(shù)防抖和節(jié)流 函數(shù)防抖和函數(shù)節(jié)流:優(yōu)化高頻率執(zhí)行js代碼的一種手段,js中的一些事件如瀏覽器的resize、scroll,鼠標的mousemove、mouseover...

    Mr_houzi 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<