Set Default Parameters for Your Functions - Can you please explain the code structure here

Tell us what’s happening:
I understand the default parameter here but I dont understand the code structure here. Can you anybody please explain. Thanks in advance

Your code so far

const increment = (function() {
  "use strict";
  return function increment(number, value) {
    return number + value;
console.log(increment(5, 2)); // returns 7
console.log(increment(5)); // returns 6

Your browser information:

User Agent is: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36.

Link to the challenge:

Most of the other challenges have a comment like “your code here”, this one doesn’t for some reason. This bit

function increment(number, value) {
    // Your solution

Is the only thing that’s important, ignore the code outside: it is only there to help the testing work. There is an open issue to remove that outer code (afaik it isn’t necessary any more for the tests).

Thats True, Thank you