I was following a beginners course of JavaScript and I've come across this code. But I don't understand why sum needs to be an IIFE function. Could you please help me understand how this code works exactly?
const sum = function() {
return function sum(x, y, z) {
const args = [x, y, z];
return args.reduce((a, b) => a + b, 0);
};
}();
console.log(sum(1, 2, 3))