果果o回忆吧 关注:13贴子:1,630
  • 4回复贴,共1

js闭包探究(防抖节流)

只看楼主收藏回复

节流(Throttle)函数︓ 对于持续的事件触发,每达到固定时间间隔,(才能去)执⾏事件处理函数
(没达到间隔,不会触发下一次)
防抖(Debounce)函数: 事件触发停⽌后开始计时,在固定时间内不再有事件触发,执⾏事件处理函数
读作似绕头


IP属地:上海1楼2021-08-31 15:59回复
    这样,因为innerbar(函数里返回的对象)赋值了,所以表面上函数结束后应该销毁,但是bar还在用所以就没有销毁,还在用!!!所以被全局变量占用了之后就没有销毁了


    IP属地:上海2楼2021-08-31 16:37
    回复
      我们还是希望变量不销毁,所以是有作用的,但如果是用全局变量,会被污染,可能会重名,可能被别人篡改,又希望可以一直操作,所以就产生了闭包的应用.
      【当时定义的函数内变量也只有返回的对象可以操作,然后重新调用一次函数创立对象,还会产生新的,和之前的也互不冲突】


      IP属地:上海3楼2021-08-31 16:38
      回复
        首先,为什么会有闭包?因为在全局作用域创建的是全局变量,函数作用域创建的局部变量,而局部变量有 函数执行完后就被销毁的特点,在使用中我们希望使用完后并不马上销毁,而且希望在外部能够进行操作和访问,就用到了闭包这种方式。
        为什么不用全局变量代替
        全局变量可以被污染,销毁,任何人都可以调用,而闭包除了函数可以访问它, 其他的访问不了
        闭包能够去访问里面的变量最重要的是由于作用域链,函数里套了函数,里面的函数需要用到父级函数的变量。【这里再加】
        闭包的副作用:内存泄漏,只要页面不关闭这块内容一直在,垃圾回收不了也不能手动给释放了


        IP属地:上海4楼2021-08-31 16:39
        回复
          那么也还是先看看闭包吧
          虽然这么看方法是不对的肯定会忘记的
          应用【柯里化】把一个多参数的函数转化为单参数的函数的方法
          【因为返回一个函数】
          所以用变量把函数存下来,可以弄多个变量这样就互不干扰了
          【因为返回一个函数】
          所以还可以往函数里再加变量方法什么的。。
          实际上因为返回函数也必须得多走一步才能调用。。


          IP属地:上海5楼2021-08-31 16:45
          回复