Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="utf-8">
- <title>JS Bin</title>
- </head>
- <body>
- <script id="jsbin-javascript">
- var whatever = {
- key: 'value',
- array: [1, 2, {type: 'object'}]
- };
- var whatever2 = copy_object(whatever);
- var whatever3 = copy_object(whatever2);
- console.log(whatever);
- console.log(whatever2);
- console.log(whatever3);
- whatever2.array[2].type = 'cool';
- whatever3.array[2].type = 'still works?';
- console.log(whatever.array[2].type);
- console.log(whatever2.array[2].type);
- console.log(whatever3.array[2].type);
- function copy_object(original) {
- var new_object = {};
- do_copy(original, new_object);
- return new_object;
- }
- function copy_array(original) {
- var new_array = [];
- do_copy(original, new_array);
- return new_array;
- }
- function do_copy(original, new_object) {
- for (var key in original) {
- if (original instanceof Array) key = parseInt(key);
- if (typeof original[key] === 'object') {
- if (original[key] instanceof Array) {
- new_object[key] = copy_array(original[key]);
- } else {
- new_object[key] = copy_object(original[key]);
- }
- } else {
- new_object[key] = original[key];
- }
- }
- }
- </script>
- <script id="jsbin-source-javascript" type="text/javascript">var whatever = {
- key: 'value',
- array: [1, 2, {type: 'object'}]
- };
- var whatever2 = copy_object(whatever);
- var whatever3 = copy_object(whatever2);
- console.log(whatever);
- console.log(whatever2);
- console.log(whatever3);
- whatever2.array[2].type = 'cool';
- whatever3.array[2].type = 'still works?';
- console.log(whatever.array[2].type);
- console.log(whatever2.array[2].type);
- console.log(whatever3.array[2].type);
- function copy_object(original) {
- var new_object = {};
- do_copy(original, new_object);
- return new_object;
- }
- function copy_array(original) {
- var new_array = [];
- do_copy(original, new_array);
- return new_array;
- }
- function do_copy(original, new_object) {
- for (var key in original) {
- if (original instanceof Array) key = parseInt(key);
- if (typeof original[key] === 'object') {
- if (original[key] instanceof Array) {
- new_object[key] = copy_array(original[key]);
- } else {
- new_object[key] = copy_object(original[key]);
- }
- } else {
- new_object[key] = original[key];
- }
- }
- }</script></body>
- </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement