js节流封装

版本1.0

function throttle (fn,delay) {
            var delay = delay || 1000;
            var lastTime = 0;
            function newFn () {
              if(new Date().getTime() - lastTime >= delay){
                return fn.apply(this,arguments);
                lastTime = new Date().getTime();
              }
            }
            return newFn;
          }

版本2.0
原型链上封装

Function.prototype.throttle = function (delay) {
            var fn = this;
            var lastTime = 0;
            function newFn () {
              if(new Date().getTime() - lastTime >= delay){
                return fn.apply(this,arguments);
                lastTime = new Date().getTime();
              }
            }
            return newFn;
          }

版本3.0
这种需求应该很少.
能够new实现继承,

Function.prototype.throttle = function (delay) {
            var fn = this;
            var lastTime = 0;
            newFn.prototype = fn.prototype;// 这里可用圣杯继承代替.
            function newFn () {
              if(new Date().getTime() - lastTime >= delay){
               return fn.apply(this,arguments);
                lastTime = new Date().getTime();
              }
            }
            return newFn;
          }
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你...
    hw1212阅读 13,108评论 2 59
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,366评论 25 709
  • 焦虑且痛苦的月子刚过,春节接踵而至,本来是挺高兴的一件事,却被母亲大人一句不同意去婆家过年搞得瞬间没了过年...
    尼古拉斯forest阅读 214评论 0 1
  • 友邻痛症灸疗馆,公园路七巷24号!12️月5号隆重开张!送精美的杯子和礼物!美美哒!欢迎大家的光临![愉快][愉快...
    洪小兰阅读 597评论 0 0
  • ――爱情,婚姻,不是要找一个最好的人,而是要找一个对你最好的人。不一定要嫁给最爱的,太爱一个人会失去自我; 也不必...
    顾欢喜yzll阅读 287评论 0 0