手写代码

87 阅读1分钟

防抖:

function debounce(fn, ms){
    let timer = null;
    return (...args)=>{
        if(timer) clearTimeout(timer);
        timer = setTimeout(()=>fn.apply(this,args), ms)
    }
}

节流:

function thorttle (fn , ms) {
    let flag = true;
    return (...args)=>{
        if(flag){
            setTimeout(()=>{
                fn.apply(this,args);flag = true;
            }, ms);
            flag = false;
        }
    }   
}

instanceof:

function myInstanceof (left, right){
    let proto = Object.getPrototypeOf(left);   
    const prototype = right.prototype;    
    while(true){
        if(!proto) return false
        if(prototype === proto) return true
        proto = Object.getPrototypeOf(proto);    
    }
}