第一級関数は、それらが変数として動作することを意味しませんか?明らかに、これらは変数とまったく同じようには動作しません。
console.log(foo);
var foo = 'bar';
...動作しませんが、これは:
console.log(foo());
function foo() {
return('bar');
}
...します。
そうは言っても、これは:
console.log(foo());
var foo = function() { return 'bar'; };
動作しません。これはより一貫性があります。
何が得られますか?