I am confused about this code how is this working although it looks simple but i am not getting the point of its working

```
<script>
function makeAdder(x) {
 return function(y) {
 return x + y;
 };
}
var add5 = makeAdder(5);
var add10 = makeAdder(10);

console.log(add5(2)); 
console.log(add10(2)); 
</script>

```