Укладзеныя функцыі ў JavaScript

Няхай у нас ёсць функцыя, параметрам якая прымае два лікі і вяртае суму квадратаў гэтых лікаў:

javascriptfunction func(num1, num2) {
  return num1 * num1 + num2 * num2;
}

console.log(func(2, 3)); // выведзе 13 (рэзультат 2 * 2 + 3 * 3)

Давайте аперацыю ўзвядзення ў квадрат вынясем у дапаможную функцыю square:

javascriptfunction square(num) {
  return num * num;
}

function func(num1, num2) {
  return square(num1) + square(num2);
}

console.log(func(2, 3)); // выведзе 13

Няхай мы ўпэўнены, што функцыя square будзе выкарыстоўвацца толькі ў функцыі func і больш ні ў якой іншай.

У гэтым выпадку было б зручна зрабіць так, каб яе ніхто выпадкова не выкарыстаў (вы самі ці іншы праграміст, які працуе разам з вамі).

У JavaScript ёсць прыгожае рашэнне: можна нашу дапаможную функцыю square змесціць унутр func. У гэтым выпадку наша дапаможная функцыя будзе даступная толькі ўнутры func, а звонку - не будзе.

Зробім гэта:

javascriptfunction func(num1, num2) {
  function square(num) {
    return num * num;
  }
  
  return square(num1) + square(num2);
}

console.log(func(2, 3)); // выведзе 13

Спроба выклікаць square звонку func прывядзе да памылкі:

javascriptfunction func(num1, num2) {
  function square(num) {
    return num * num;
  }
  
  return square(num1) + square(num2);
}

console.log(square(2)); //!! выдасць памылку
Задание 1

Зрабіце функцыю func, якая параметрамі будзе прымаць два лікі, а вяртаць суму квадрата першага ліку з кубам другога ліку. Зрабіце для гэтага дапаможную функцыю square, якая ўзводзіць лік у квадрат, і дапаможную функцыю cube, якая ўзводзіць лік у куб.