title: Is a function definition an object?
body: <p>Say I have an object and a function definition:</p>
  
  <pre><code>var jane = {
      firstName: 'Jane',
      lastName: 'Smith',
      describe: function () {
          return 'Person named '+this.firstName+this.lastName
      },
  };
  
  function Car (desc) {
      this.desc = desc;
      this.color = "red";
      this.getInfo = function getInfo() {
          return 'A ' + this.color + ' ' + this.desc + '.';
      };
  }
  </code></pre>
  
  <p>I can enumerate over the object's key:value pairs thus:</p>
  
  <pre><code>obj=jane
  for (var prop in obj) {
    console.log(`obj.${prop} = ${obj[prop]}`);
  }
  </code></pre>
  
  <p>but this fails for the function definition (same for function expression)</p>
  
  <pre><code>obj=Car.....
  </code></pre>
  
  <p>If a function definition is an object then why can't I enumerate over it's properties? Is there a way do to it?</p>
  
  <p>Thanks</p>