simple-helpers.js
Version:
简洁高效的现代JavaScript函数库
2 lines (1 loc) • 1.22 kB
JavaScript
function e(e,t){void 0===t&&(t=!1);for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];var c=t?Object.create(null):{};return n.length&&n.forEach((function(t){e.hasOwnProperty(t)&&void 0!==Reflect.get(e,t)&&Reflect.set(c,t,e[t])})),c}function t(e){return Reflect.ownKeys(e).filter((function(t){return!1!==(null!=(n=Reflect.get(e,t))&&n);var n})).reduce((function(t,n){return Reflect.set(t,n,Reflect.get(e,n)),t}),{})}function n(e){return"object"==typeof e&&!!e||"function"==typeof e}function r(e,t){if(void 0===t&&(t=new WeakMap),!n(e))return e;if([Date,RegExp].includes(Reflect.get(e,"constructor")))return new(Reflect.get(e,"constructor"))(e);if("function"==typeof e)return new Function("return ".concat(e.toString()))();var c=t.get(e);if(c)return c;if(e instanceof Map){var o=new Map;return t.set(e,o),e.forEach((function(e,c){n(e)?o.set(c,r(e,t)):o.set(c,e)})),o}if(e instanceof Set){var f=new Set;t.set(e,f),f.forEach((function(e){n(e)?f.add(r(e,t)):f.add(e)}))}var u=Reflect.ownKeys(e),i=Object.getOwnPropertyDescriptors(e),a=Object.create(Object.getPrototypeOf(e),i);return t.set(e,a),u.forEach((function(c){var o=Reflect.get(e,c);n(o)?a[c]=r(o,t):a[c]=o})),a}export{r as cloneDeep,e as picker,t as useful};