const stats = {
max: 56.78,
standard_deviation: 4.34,
median: 34.54,
mode: 23.87,
min: -0.75,
average: 35.85
};
const half = (function() {
“use strict”; // do not change this line
// change code below this line
return function half(stats) {
// use function argument destructuring
return (stats.max + stats.min) / 2.0;
};
// change code above this line
})();
console.log(stats); // should be object
console.log(half(stats)); // should be 28.015
i dont understand what with all the brackets and curly braces from line “const half” and the third last line of code.
i understand that half is a const variable which contain function expression and this anonymous function calls other function half with argument as “stats”.
if i remove the inner code then it looks like:
const half = (function()
{
some code
};
})();
I’ve edited your post for readability. When you enter a code block into a forum post, please precede it with a separate line of three backticks and follow it with a separate line of three backticks to make easier to read.
Note: Backticks are not single quotes.
See this post to find the backtick on your keyboard. The “preformatted text” tool in the editor (</>
) will also add backticks around text.

1 Like
That’s what’s known as an Immediately Invoked Function Expression or IIFE. There is some documentation here. They’re a useful tool but they can certainly seem strange at first. You didn’t provide a link to the problem so I don’t know where it is in the curriculum, but I’m sure you can find materials out there. I might suggest checking youtube too.
Please be sure not to ask the same question twice, I just deleted the other thread.
1 Like
IC. Yes, the IIFEs aren’t discussed until the Object Oriented section. There is a problem in some of the problems of using techniques not taught yet. It’s a volunteer operation - someone will get around to fixing it eventually.
1 Like