Не первые функции класса означают, что они ведут себя как переменные? Очевидно, что они не ведут себя точно так же, как переменные, поскольку это:
console.log(foo);
var foo = 'bar';
... не работает, тогда как это:
console.log(foo());
function foo() {
return('bar');
}
... делает.
Тем не менее, это:
console.log(foo());
var foo = function() { return 'bar'; };
не работает, что более согласовано.
Что дает?