Где и когда использовать скобки в функции?

Я не совсем понимаю где стоит использовать скобки в функции, а где нет. В инете пишется, что скобки используются при вызове функции, а функция без скобок, я так понимаю, используется, когда мы хотим просто использовать значение функции.

Но вот пример ниже. Здесь нужно использовать значение функции - прибавить к нему 1. Но в итоге прибавляется один ко всему коду функции.

function func() {
  console.log('function');
  return 5;
}

console.log(1 + func);

Во втором примере опять используется значение функции и тоже не используются скобки, и все работает как надо:

function func() {
  console.log('function');
  return 5;
}

let a = func;
a();

Можно как-то четко сказать где стоит писать без скобок, а где с?

P. S. Хотя я наверное больше не понимаю что является значением функции. Разве не return возвращает значение функции?


Ответы (1 шт):

Автор решения: Igor

Когда нужно вызвать функцию (выполнить код внутри нее) - нужны скобки. Когда коду нужно работать со ссылкой на объект функции - без скобок.

let a = func; // make variable a reference the same function object as func
a();          // call the function
→ Ссылка