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

資訊專欄INFORMATION COLUMN

test

glumes / 997人閱讀

摘要:防抖多次觸發(fā)事件后,事件處理函數(shù)只執(zhí)行一次,并且是在觸發(fā)操作結(jié)束時執(zhí)行。

防抖:多次觸發(fā)事件后,事件處理函數(shù)只執(zhí)行一次,并且是在觸發(fā)操作結(jié)束時執(zhí)行。
    function debounce(fn) {
      // 4、創(chuàng)建一個標記用來存放定時器的返回值
      let timeout = null;
      return function() {除
        clearTimeout(timeout);
        var args = arguments;
        timeout = setTimeout(() => {
          fn.apply(this, args);
        }, 1000);
      };
    }
    sayDebounce(){
     console.log("防抖成功!");
    }
    btn.addEventListener("click", debounce(sayDebounce));
節(jié)流: 觸發(fā)函數(shù)事件后,短時間間隔內(nèi)無法連續(xù)調(diào)用,只有上一次函數(shù)執(zhí)行后,過了規(guī)定的時間間隔,才能進行下一次的函數(shù)調(diào)用
    var throttle = function(func, delay) {
        var prev = Date.now();
        return function() {
            var context = this;
            var args = arguments;
            var now = Date.now();
            if (now - prev >= delay) {
                func.apply(context, args);
                prev = Date.now();
            }
        }
    }
    function handle() {
        console.log(Math.random());
    }
    window.addEventListener("scroll", throttle(handle, 1000));
    // 處理函數(shù)
    function handle() {
        console.log(Math.random()); 
    }
    // 滾動事件
    window.addEventListener("scroll", debounce(handle, 1000));
js 實現(xiàn)once 方法
function runOnce(fn, context) { //控制讓函數(shù)只觸發(fā)一次
  return function () {
    try {
      fn.apply(context || this, arguments);
    }
    catch (e) {
      console.error(e);//一般可以注釋掉這行
    }
    finally {
      fn = null;
    }
  }
}
var obj = {name: "狗子", age: 24};
var canOnlyFireOnce = runOnce(function () {
  console.log("你好" + this.name);
}, obj);
canOnlyFireOnce(); //你好天涯孤雁
canOnlyFireOnce(); // nothing
實現(xiàn)bind 或者 call
Function.prototype.bind= function(obj){
    var _self = this, args = arguments;
    return function() {
        _self.apply(obj, Array.prototype.slice.call(args, 1));
    }
}
Function.protype.call = function(context){
    context = context || window
    context.fn = this;
    const args = [...arguments].slice(1);
    const result = context.fn(...args);
    delete context.fn
    return result;
}
reduce實現(xiàn)map
    const reduceMap = (fn, thisArg /*真想去掉thisArg這個參數(shù)*/ ) => {
        return (list) => {
            // 不怎么愿意寫下面這兩個判斷條件
            if (typeof fn !== "function") {
                throw new TypeError(fn + "is not a function")  
            }
            if (!Array.isArray(list)) {
                throw new TypeError("list must be a Array")
            }
            if (list.length === 0) return []
            return list.reduce((acc, value, index) => {
                return acc.concat([ fn.call(thisArg, value, index, list) ])
            }, [])
        }
    }
    // 來使用下怎么樣           
               
                                           
                       
                 

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

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

相關文章

  • K8S client-go Patch example

    摘要:所以使用記住要把原始的數(shù)據(jù)取出來和你要新增的數(shù)據(jù)合并后再提交,如單元測試如各位還有其他更好的方式,歡迎交流補充。 使用Patch方式更新K8S的 API Objects 一共有三種方式:strategic merge patch, json-patch,json merge patch。關于這三種方式的文字描述區(qū)別可看官方文檔update-api-object-kubectl-patc...

    null1145 評論0 收藏0
  • script關于async與defer屬性的測試

    摘要:環(huán)境其它版本沒有測試,下列簡稱和分別延遲秒秒和立即,并會在控制臺里打印和測試代碼做測試步驟不為設定或時頁面會在所有加載和執(zhí)行完后渲染輸出和設置為會等的秒延遲后,控制臺會立即輸出和等的秒后會輸出并觸發(fā),最后觸發(fā)會等的秒延遲后,控制臺會立即 環(huán)境: chrome31/firefox25/IE11(其它版本沒有測試),下列簡稱chrome/firefox/IE http://127.0....

    scola666 評論0 收藏0
  • Python 自定義函數(shù)的特殊屬性(收藏專用)

    Python 中通過函數(shù)定義所創(chuàng)建的用戶自定義函數(shù)對象均具有一些特殊屬性,需要注意的是這里介紹的是自定義函數(shù)(function類型)的特殊屬性,而非方法(method 類型)的特殊屬性,函數(shù)和方法的特熟屬性以及默認的返回值可能不盡相同。 對于大多數(shù)特殊屬性,可以通過下面這個例子示范一下: class Test(): def func(self, v = dog): 這里演...

    zhou_you 評論0 收藏0
  • JS 變量聲明之變量提升和函數(shù)提升

    摘要:很多初學者弄不清變量提升和函數(shù)提升,整理寫幾個例子,分析一下,你很快搞明白怎么分析。精華放在最上面,兩個最基本的原則函數(shù)聲明優(yōu)先先聲明,后賦值,聲明和賦值是分開的。 很多初學者弄不清變量提升和函數(shù)提升,整理寫幾個例子,分析一下,你很快搞明白怎么分析。精華放在最上面,兩個最基本的原則: 函數(shù)聲明優(yōu)先 先聲明,后賦值,聲明和賦值是分開的。 讓我們看幾個例子并解釋下 先看這個例子: va...

    honhon 評論0 收藏0
  • Python裝飾器:python真正入門的鑒定標準

    上一篇文章:Python是動態(tài)語言:動態(tài)添加或刪除屬性、方法下一篇文章:私有化規(guī)則與屬性Property 裝飾器功能: 引入日志 函數(shù)執(zhí)行時間統(tǒng)計 執(zhí)行函數(shù)前預備處理 執(zhí)行函數(shù)后清理功能 權(quán)限校驗 緩存 1、無參數(shù)函數(shù)的裝飾器 實例: from time import ctime,sleep def time_fun(func): #內(nèi)部包裹函數(shù) def wrapped_...

    ranwu 評論0 收藏0

發(fā)表評論

0條評論

glumes

|高級講師

TA的文章

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