Atualmente sob responsabilidade da ECMA International, o Java Script (ECMA 6) utiliza o padrão de arrow function para a definição de funções, aproximando um pouco mais a linguagem do paradigma funcional.
Considerando uma função para a multiplicação de dois valores, na forma recursiva, sua implementação no padrão arrow function é:
let fnx = (a,b) => (b>1) ? a * fnx(a, b-1) : a;
let fnx = (a,b) => (b>1) ? b + fnx(a, b-1) : a;
let fnx = (a,b) => (a>1) ? b * fnx(a-1, b) : a;
let fnx = (a,b) => (b>1) ? a + fnx(a, b-1) : a;
let fnx = (a,b) => (a>1) ? b * fnx(a, b) : a-1;