Use the Rest Operator with Function Parameters : please explain how these parent function is defined

Tell us what’s happening:

i don’t understand why and how this function is defined as
const sum = ()();
how a function starting with these parenthesis and what are about these last parenthesis

Your code so far

const sum = (function() {
  "use strict";
  return function sum(...args) {
    const args = [ x, y, z ];
    return args.reduce((a, b) => a + b, 0);
console.log(sum(1, 2, 3)); // 6
console.log(sum(1, 2, 3)); // 6

Your browser information:

User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36.

Link to the challenge:

Hi, Conctactyash.

You are setting the sum equal to the function definition. The function definition is being immediately invoked (see ‘immediately invoked function expressions’. In order to run an anonymous function immediately, it must be wrapped in parens, then you must use the parens immediately following the definition to call the function.

thank you . i got it