Advertisement
dimipan80

Deep Copy of Object

Nov 19th, 2014
187
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /* Write a JavaScript function clone(obj) that accepts as parameter an object of reference type.
  2. The function should return a deep copy of the object. Write a second function compareObjects(obj,
  3. objCopy) that compare the two objects by reference (==) and print on the console the output given below. */
  4.  
  5. "use strict";
  6.  
  7. function clone(obj) {
  8.     var deepCopyObj = new obj.constructor();
  9.     for (var property in obj) {
  10.         if (obj.hasOwnProperty(property)) {
  11.             switch (typeof obj[property]) {
  12.                 case 'object':
  13.                     deepCopyObj[property] = clone(obj[property]);
  14.                     break;
  15.                 default:
  16.                     deepCopyObj[property] = obj[property];
  17.                     break;
  18.             }
  19.         }
  20.     }
  21.  
  22.     return deepCopyObj;
  23. }
  24.  
  25. function compareObjects(obj, objCopy) {
  26.     return 'a == b --> ' + (obj == objCopy);
  27. }
  28.  
  29. var a = {name: 'Pesho', age: 21};
  30. var b = clone(a);
  31. console.log(compareObjects(a, b));
  32.  
  33. var a = {name: 'Pesho', age: 21};
  34. var b = a;
  35. console.log(compareObjects(a, b));
  36.  
  37. var a = {name: 'Joro', age: 24, exams: { 'C#': 6, 'Java': 5, 'WebFunds': 6, 'JavaScript': 6, 'Python': 4}};
  38. var b = clone(a);
  39. console.log(compareObjects(a, b));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement