title: Issue preserving object using JSON.stringify
body: <p>Having an isue getting JSON to stringify the entire object layout. It currently only stringifies the first object level. If I take the second level, and only stringify that, it works. Though, when I try the entire object, it drops any sublevel proerties.  This is a snippet from a constructor to craet a table instance.</p>
  
  <pre><code>var doesTableNameExist,
          dataBase = {
              tables: {}
          },
      _dataBaseInstance,
      _tableInstance = {
          TableName: "",
          Columns: "",
          Rows: "",
          RowCount: ""
      }
  
      this.TableName = tableName;
      this.Columns = columns;
      this.Rows = rows;
      this.RowCount = 0;
  
      _dataBaseInstance = localStorage.getItem($config.dataBaseName);
      if (!!_dataBaseInstance)
      {
          dataBase = JSON.parse(_dataBaseInstance);
      }
  
      doesTableNameExist = dataBase.tables[tableName];
  
      if (!!doesTableNameExist &amp;&amp; !forceNew)
      {
          errorMsg = String.jDBaseFormat("That table name is already used! You cannot have two tables with the name {0}", this.TableName);
          console.error(errorMsg);
      }
      else
      {
          //create the object table and store it after running JSON against it.
          _tableInstance = this;
          dataBase.tables[tableName] = _tableInstance;
          localStorage.setItem($config.dataBaseName, JSON.stringify(dataBase));
  
          console.log(String.jDBaseFormat("Storing new table '{0}'.", this.TableName));
      }
  </code></pre>
  
  <p>Any help would be greatly appreciated.  After the stringify process, what the object looks like is:</p>
  
  <p>object ---->  Tables: [];    Not Object --> Tables:  ---->Table instances.</p>
  
  <p>Here is the object during run time.</p>
  
  <p><img src="https://i.stack.imgur.com/zNAUB.png" alt="enter image description here"></p>
  
  <p>So I know the object is all correct. But JSON drops anything in the object property "tables".  Don't understand why.</p>
  
  <p>I also tried it this way:</p>
  
  <p>Yea. I was wondering. It is an instance of the constructor table function.  I tried this, and also no go. I thought it would make it a generic object, and not have the instance attached.  </p>
  
  <pre><code>_tableInstance = $.extend({}, this);
          dataBase.tables[tableName] = _tableInstance;
          localStorage.setItem($config.dataBaseName, JSON.stringify(dataBase));    
  </code></pre>
  
  <p>So I am wondering if I should just return an object, instead of using the "new" constructor for the table, that way I am storing a regular object and not an instance of the constructor?   I will try it out.  Thanks for all the help.                </p>