 <p>It has nothing to do with the inner function being named or not.</p> <p>In the first screenshot you're inspecting the <code>out</code> variable, which references a function returned but <code>outer</code>. That function has <code>x</code> in its closure scope.</p> <p>In the second screenshot you're inspecting the <code>outer</code> variable, which references a named global function. In that code snippet you don't have any variable to reference the result or <code>outer(3)</code>. If you assign that to a variable just like you do in the first example <code>var out = outer(3)</code> and put a breakpoint after that assignment, you'll be able to see <code>out</code>'s closure scope. Alternatively, you can inspect that by adding a "watch expression" of <code>outer(3)</code> in the debugger without the need to modify your code.</p>