What is the difference of 3 object declarations of javascript
<p>All, I found there are 3 ways to declare object in javascript.</p>

<pre><code>var Waffle = {
   tastes:'yummy'
};

var Waffle = function()
{
   this.tastes='yummy';
};

function Waffle() {
   var that = {};
   that.tastes = "yummy";
   return that;
}
</code></pre>

<p>The first way is <code>Object literal</code> it doesn't have a <code>constructor</code>.
I think the equal way to <code>Object literal</code> is below.</p>

<pre><code>var Waffle = new Object();
Waffle.tastes = 'yummy';
</code></pre>

<p>(If my understanding is wrong. Please correct me.)</p>

<p>I want to know what the difference of these 3 ways is. </p>

<p>Which one is the best choice? </p>

<p>Thanks.</p>
