Clone Objects in Javascript

From Code Trash
Jump to: navigation, search
<script language="JavaScript"><!--
function bookObject(title,author,publisher,isbn,edition) {
    this.title = title;
    this.author = author;
    this.publisher = publisher;
    this.isbn = isbn;
    this.edition = edition;
}
 
function authorObject(firstname,surname) {
    this.firstname = firstname;
    this.surname = surname;
    this.name = firstname + ' ' + surname;
}
 
function cloneObject(what) {
    for (i in what) {
        if (typeof what[i] == 'object') {
            this[i] = new cloneObject(what[i]);
        }
        else
            this[i] = what[i];
    }
}
 
var author1 = new authorObject('David','Flanagan')
 
var book1 = new bookObject('JavaScript The Definitive Guide',author1,"O'Reilly",'1-56592-234-4','2nd Edition');
 
var book2= new cloneObject(book1);
 
book2.edition = '3rd Edition';
book2.isbn = '1-56592-392-8';
 
function retrieveObject(what) {
    var output = '';
    for (i in what) {
        if (typeof what[i] == 'object') {
            output += retrieveObject(what[i]);
        }
        else
            output += i + ' = ' + what[i] + '\n';
    }
    return output;
}
 
alert(retrieveObject(book1))
alert(retrieveObject(book2))
//--></script>