First, the Function( ) constructor allows
JavaScript code to be dynamically created and compiled at runtime.
Function literals, however, are a static part of program structure,
just as function statements are.
Second, as a corollary of the first difference, the
Function( ) constructor parses the function body
and creates a new function object each time it is called. If the call
to the constructor appears within a loop or within a frequently
called function, this process can be inefficient. On the other hand,
a function literal or nested function that appears within a loop or
function is not recompiled each time it is encountered. Nor is a
different function object created each time a function literal is
encountered. (Although, as noted earlier, a new closure may be
required to capture differences in the lexical scope in which the
function is defined.)