Проблема в том, что вне инициализатора объекта это:
doStuff: (x) => {
if (x<10) doStuff(x+1);
}
... является меткой (doStuff:
), за которой следует стрелкаВыражение функции создает функцию, которую вы никогда не сохраняете и не вызываете, вы просто выбрасываете ее.Речь идет не о функции стрелки, у вас возникла бы та же проблема, если бы вы использовали традиционное выражение функции:
doStuff: function(x) { // Same problem, but with traditional function expression
if (x<10) doStuff(x+1);
}
Вместо этого, если вы хотите, чтобы это была функция стрелки, присвойте ее переменной илипостоянная:
const doStuff = (x) => {
if (x<10) doStuff(x+1);
};