title: Javascript Object Property logged in Google Chrome Console before Declaration
body: <p>I've been testing some JavaScript using the <code>Google Chrome version 28.0.1500.95 m</code> console and am looking for a bit more understanding of how it works:  Have a look at the code below:</p>
  
  <pre><code>var obj = {
      a: 99,
      f: function() { }
  }
  
  console.log(obj.a)
  console.log(obj.z)    
  console.log(obj)
  
  o.z = 100;
  </code></pre>
  
  <p><a href="http://jsfiddle.net/NE5gG/">Demo</a></p>
  
  <p>This outputs the following results:</p>
  
  <pre><code>99 
  undefined 
  Object {a: 99, f: function}
  a: 99
  f: function () { }
  z: 100
  __proto__: Object
  </code></pre>
  
  <p>My question is, why is <code>z</code> visible in the results when it wasn't declared until after the log?</p>
  
  <p>I'm assuming this is something with how the console works and not some weird scoping rule in JavaScript, that I'm unaware of?</p>
  
  <p>Can anyone tell me what's happening here please?</p>