随笔分类 - 手写篇
用于各种函数的手写实现
摘要:有的时候会出现一种情况,就是你需要调用多次API,因为可能调一次返回的数据量过大,占满了带宽就直接卡死,但是你又不想每次只调用一个,想每次调用多个,你就可以尝试下面的方法: ### 使用Promise解决并发问题 ``` function async concurrentRequests(args,
阅读全文
摘要:事件总线 事件总线使用方法 const events = new EventBus(); function foo1() { console.log('foo1'); } function foo2() { console.log('foo2'); } function foo3() { conso
阅读全文
摘要:作用 instanceOf可以用来判断一个数据具体是哪一种 object 手写 function myInstanceOf(a, b) { const A = a.prototype; // 获取到a的原型对象 let B = b.__proto__; // 隐式原型,其值由构造函数的prototy
阅读全文
摘要:map function myMap(arr, callback) { if(Array.isArray(arr)) { if(arr.length 0) return arr; const brr = []; for(let item of arr) { brr.push(callback(ite
阅读全文
摘要:我记得我之前不是写过防抖节流吗? ###防抖(debounce) debounce(fn, wait) { let timer = null return function() { timer && clearTimeout(timer) timer = setTimeout(() => { fn.
阅读全文
摘要:###含义 当你复制一个值给另一个值的时候,假如复制后的值跟之前的值不会再有任何关系,就叫深拷贝,否则就叫浅拷贝。 那么什么时候才会有关系,什么时候没有呢?例子: let str = 'string' let strA = str strA = 'changed' console.log(str,
阅读全文
摘要:咋一听函数柯里化贼高级,然后在了解之后就挺简单的,就是把一个多参数的函数改成闭包,不喜欢多哔哔,直接上例子 ``` //用万能的add函数 //一般的add函数 function add(x, y, z) { return x + y + z; } add(1,2, 3) //6 ``` 函数柯里化
阅读全文