成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

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

weknow619 / 3354人閱讀

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

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

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

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

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

一個(gè)簡(jiǎn)單的計(jì)數(shù)器 代碼如下

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

let run = count()

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

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/105559.html

相關(guān)文章

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

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

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

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

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

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

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

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

    Mr_houzi 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<