Разница в скобках?

let user = {
  name: "Вася",
  start() {
  alert(this.name) 
  }
};

user.start(); // Здесь нет скобок.



let user = {
  name: "Коля",
  start() { 
  alert(this.name) 
  }
};

(user.start)();  // А здесь user.start в скобках, зачем они?


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

Автор решения: Денис Степанов

Тут это не имеет значения.
Ну, если уж на то пошло, то вот пара примеров, когда имеет.

function foo() {
    return 0;
}

function boo() {
    return "boo";
}

console.log((foo && boo)()); // boo
console.log(foo() && boo()); // 0


console.log((foo || boo)()); // 0 
console.log((foo() || boo())); // boo 

Когда вы используете foo и boo без скобочек, вы оперируете функциями как обьктами, однако вызывая foo() и boo() вы начинаете оперировать результатом выполнения этих функций.

→ Ссылка