Это оба.
Все - это «данные» в Javascript, включая функции. Я считаю, что это хороший способ изобразить это:
var f = function() { alert('foo'); };
Это присваивание переменной, которая ничем не отличается от написанной, скажем:
var f = new String('foo');
В любом случае, вы можете написать операторы типа f.bar = 'baz';
для назначения свойств вашему объекту. Единственное отличие состоит в том, что оператор ()
(если хотите) работает только в том случае, если ваша переменная является функцией. f()
имеет смысл, если это функция; f()
не имеет смысла, если это строка или какой-то другой фрагмент данных.