lhyt
lhyt
```js Promise._race = promises => new Promise((resolve, reject) => { promises.forEach(promise => { promise.then(resolve, reject) }) }) ```
一个不考虑其他数据类型的公共方法,基本满足大部分场景 ```js function deepCopy(target, cache = new Set()) { if (typeof target !== 'object' || cache.has(target)) { return target } if (Array.isArray(target)) { target.map(t => { cache.add(t) return t })...
> > 一个不考虑其他数据类型的公共方法,基本满足大部分场景 > > ```js > > function deepCopy(target, cache = new Set()) { > > if (typeof target !== 'object' || cache.has(target)) { > > return target >...
先看Link点击事件handleClick部分源码 ```javascript if (_this.props.onClick) _this.props.onClick(event); if (!event.defaultPrevented && // onClick prevented default event.button === 0 && // ignore everything but left clicks !_this.props.target && // let browser handle "target=_blank" etc....
```js function flattern(o, path = '', res = {}) { Object.keys(o).forEach((key) => { if (Object.prototype.toString.call(o[key]) === '[object Object]' || Array.isArray(o[key])) { flattern(o[key], `${path}.${key}`, res) } else { res[`${path}.${key}`.slice(1)] = o[key]...
考虑节流、缓存。其实还可以上列表diff+定时清理缓存 ```html auto complete bdi { color: rgb(0, 136, 255); } li { list-style: none; } function debounce(fn, timeout = 300) { let t; return (...args) => { if (t)...
```js // 创建链表 function createLinkList(...args) { const res = {}; let current = res; while (args.length) { current.value = args.shift(); current.next = {}; current = current.next; } return res; }...