vue2.x使用debounce里debounce第二個(gè)參數(shù)怎么讀取到this

最近遇到一個(gè)需求,vue2.x里的debounce的延遲時(shí)間(暫記為wait)需要通過this.wait拿到
很快啊,一頓操作,有了如下代碼

<template>
<div  @mouseenter="onMouseEnter">123</div>  
</template>
<script>
import {debounce} from 'lodash'
export default {
props:{
  wait:{
    type:Number,
    default:0
  }
},
method:{
  onMouseEnter:debounce(function($event){
    console.log('執(zhí)行邏輯部分')
  },this.wait)
}
}
</script>

結(jié)果,報(bào)錯(cuò)拿不到this,因?yàn)榇藭r(shí)的this是window,window沒有wait變量,應(yīng)該怎么處理呢?
其實(shí)可以在執(zhí)行mouseenter之前寫個(gè)中間函數(shù)onMouseEnterProxy,再寫個(gè)debounce函數(shù)使得它等于this.onMouseEnter,請看下面代碼

<template>
<div  @mouseenter="onMouseEnterProxy">123</div>  
</template>
<script>
import {debounce} from 'lodash'
export default {
props:{
  wait:{
    type:Number,
    default:0
  }
},
method:{
  onMouseEnterProxy($event){
    //這里可以先寫一些邏輯,比如debounce觸發(fā)前要設(shè)置flag
    const self = this
    if(!this.onMouseEnter){
        this.onMouseEnter=debounce(function($event){
          console.log('執(zhí)行邏輯部分')
        },this.wait)
    }
    this.onMouseEnter($event, self)
  },
}
}
</script>
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容