1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
| export const $ = function() { var copyIsArray, toString = Object.prototype.toString, hasOwn = Object.prototype.hasOwnProperty,
class2type = { '[object Boolean]': 'boolean', '[object Number]': 'number', '[object String]': 'string', '[object Function]': 'function', '[object Array]': 'array', '[object Date]': 'date', '[object RegExp]': 'regExp', '[object Object]': 'object' },
type = function(obj) { return obj == null ? String(obj) : class2type[toString.call(obj)] || "object"; },
isWindow = function(obj) { return obj && typeof obj === "object" && "setInterval" in obj; },
isArray = Array.isArray || function(obj) { return type(obj) === "array"; },
isPlainObject = function(obj) { if (!obj || type(obj) !== "object" || obj.nodeType || isWindow(obj)) { return false; }
if (obj.constructor && !hasOwn.call(obj, "constructor") && !hasOwn.call(obj.constructor.prototype, "isPrototypeOf")) { return false; }
var key; for (key in obj) {}
return key === undefined || hasOwn.call(obj, key); },
extend = function(deep, target, options) { for (var name in options) { var src = target[name]; var copy = options[name];
if (target === copy) { continue; }
if (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) { if (copyIsArray) { copyIsArray = false; var clone = src && isArray(src) ? src : [];
} else { var clone = src && isPlainObject(src) ? src : {}; }
target[name] = extend(deep, clone, copy); } else if (copy !== undefined) { target[name] = copy; } }
return target; };
return { extend: extend }; }();
|