title: Difference between "anonymous function" and "function literal" in JavaScript?
body: <p>The book <a href="http://oreilly.com/catalog/9780596527464" rel="noreferrer">Learning JavaScript</a> defines anonymous functions as follows...</p>
  <blockquote>
  <p>Functions are objects. As such, you can create them - just like a <code>String</code> or <code>Array</code> or other type - by using a constructor and assigning the function to a variable. In the following code, a new function is created using the <code>Function</code> constructor, with the function body and argument passed in as arguments:</p>
  <pre><code>var sayHi = new Function(&quot;toWhom&quot;, &quot;alert('Hi' + toWhom);&quot;);
  </code></pre>
  <p>This type of function is often referred to as an <em>anonymous function</em> because the function itself isn't directly declared or named.</p>
  </blockquote>
  <p>Is this the correct definition of an &quot;anonymous function&quot; in JavaScript? If not, what is an anonymous function, and is there any difference between an anonymous function and a function literal?</p>