Legal o post, SrKim!
Uma observação sobre a forma que você resolver o problema da lógica duplicada(lógica de dobrar um valor). Você soluciona desta forma: remove a lógica duplicada e exige que quem usa as funções sum
e subtract
dobrem a entrada, isso me parece algo ruin, pois sempre que usar uma das duas funções eu irei ter que dobrar o valor. Acredito que a seguinte forma resolve melhor o problema:
function duble(n) {
return n * 2;
}
function sum(firstNumber, secondNumber){
return duble(firstNumber) + secondNumber;
}
function subtract(firstNumber, secondNumber){
return duble(firstNumber) - secondNumber;
}
console.log(sum(5,5));
//Result 15
console.log(subtract(5,5));
//Result 5
Com essa alteração, usamos as funções da mesma forma, sem necessidade de antes de usá-la duplicar a entrada e sem código duplicado.