(function() { var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; var __module = nodeEnv ? module : {exports:{}}; var __filename = 'preview-scripts/__node_modules/k8w-super-object/index.js'; var __require = nodeEnv ? function (request) { return cc.require(request); } : function (request) { return __quick_compile_project__.require(request, __filename); }; function __define (exports, require, module) { if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; /// /** * 将sources合并到target,该合并全部是深拷贝 * @param target * @param sources * @returns {Object} */ Object.merge = function (target) { var sources = []; for (var _i = 1; _i < arguments.length; _i++) { sources[_i - 1] = arguments[_i]; } for (var i = 0; i < sources.length; ++i) { var source = sources[i]; if (typeof source != 'object' || source == null) { continue; } for (var skey in source) { //只处理自身的key 这里可能来自于外部prototype的扩展 if (!source.hasOwnProperty(skey)) { continue; } if (source[skey] instanceof Date) { //Date类型 要克隆一份 保证深拷贝 target[skey] = new Date(source[skey]); continue; } else if (typeof (target[skey]) == 'object' && target[skey] != null && typeof (source[skey]) == 'object' && source[skey] != null) { // 两个都是Object 递归merge之 Object.merge(target[skey], source[skey]); } else { if (Array.isArray(source[skey])) { // 数组merge后还是数组 target[skey] = Object.merge([], source[skey]); } else if (typeof (source[skey]) == 'object' && source[skey] !== null) { // Object要克隆一份以确保深拷贝 target[skey] = Object.merge({}, source[skey]); } else { // 基本类型 直接赋值即可 target[skey] = source[skey]; } } } } return target; }; if (!Object.values) { Object.values = function (obj) { var output = []; for (var k in obj) { obj.hasOwnProperty(k) && output.push(obj[k]); } return output; }; } if (!Object.entries) { Object.entries = function (obj) { var output = []; for (var key in obj) { if (!obj.hasOwnProperty(key)) { continue; } output.push([key, obj[key]]); } return output; }; } Object.forEach = function (obj, handler) { for (var key in obj) { if (!obj.hasOwnProperty(key)) { return; } handler(obj[key], key, obj); } }; } if (nodeEnv) { __define(__module.exports, __require, __module); } else { __quick_compile_project__.registerModuleFunc(__filename, function () { __define(__module.exports, __require, __module); }); } })();