Challenge 1 — Solution Task: Write a function makePowerOf(exponent) that returns a function taking a base number and returning base raised to that exponent (use ** for exponentiation). Create square = makePowerOf(2) and cube = makePowerOf(3), then test both with the same input. function makePowerOf(exponent) { return function (base) { return base ** exponent; }; } const square = makePowerOf(2); const cube = makePowerOf(3); console.log(square(5)); // 25 console.log(cube(5)); // 125 Expected output: 25 125 Notes: - square and cube are two separate closures, each created by its own call to makePowerOf — square's inner function remembers exponent as 2, cube's remembers it as 3, with no overlap between them. - ** is JavaScript's exponentiation operator (5 ** 2 means 5 squared), separate from the * multiplication operator used in earlier chapters. - Both functions can be called repeatedly with different bases (square(10), square(3), etc.) and exponent stays fixed at whatever value was passed to makePowerOf when that specific function was created.