clone.js 958 B

123456789101112131415161718192021222324252627282930313233
  1. var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
  2. var isArray = require('./type/is-array');
  3. var clone = function clone(obj) {
  4. if ((typeof obj === 'undefined' ? 'undefined' : _typeof(obj)) !== 'object' || obj === null) {
  5. return obj;
  6. }
  7. var rst = void 0;
  8. if (isArray(obj)) {
  9. rst = [];
  10. for (var i = 0, l = obj.length; i < l; i++) {
  11. if (_typeof(obj[i]) === 'object' && obj[i] != null) {
  12. rst[i] = clone(obj[i]);
  13. } else {
  14. rst[i] = obj[i];
  15. }
  16. }
  17. } else {
  18. rst = {};
  19. for (var k in obj) {
  20. if (_typeof(obj[k]) === 'object' && obj[k] != null) {
  21. rst[k] = clone(obj[k]);
  22. } else {
  23. rst[k] = obj[k];
  24. }
  25. }
  26. }
  27. return rst;
  28. };
  29. module.exports = clone;