Can someone please explain the below 'Currying' function. When I set a break point, I can see values 'b' and 'c' are undefined and returned. But how does the system get the value 7 for 'b' and 9 for 'c' in this case. Its printing the correct result for 5\*7\*9, ie 315 in console. 

```
function multiply(a){
    return function (b){
        return function (c) {       
            return a*b*c ;
                }
        }
    }
var answer = multiply(5)(7)(9);
console.log(answer);

```