How does the Math.max.apply() work?
apply, function, javascript
Solution
`apply` accepts an array and it applies the array as parameters to the actual function. So,
Math.max.apply(Math, list);
can be understood as,
Math.max("12", "23", "100", "34", "56", "9", "233");
So, `apply` is a convenient way to pass an array of data as parameters to a function. Remember
console.log(Math.max(list)); # NaN
will not work, because `max` doesn't accept an array as input.
There is another advantage, of using `apply`, you can choose your own context. The first parameter, you pass to `apply` of any function, will be the `this` inside that function. But, `max` doesn't depend on the current context. So, anything would work in-place of `Math`.
console.log(Math.max.apply(undefined, list)); # 233
console.log(Math.max.apply(null, list)); # 233
console.log(Math.max.apply(Math, list)); # 233
Since `apply` is actually defined in `Function.prototype`, any valid JavaScript function object, will have `apply` function, by default.
Problem
How does the `Math.max.apply()` work?. ``` <!DOCTYPE html> <html> <head> <meta charset=utf-8 /> <title>JS Bin</title> </head> <body> <script> var list = ["12","23","100","34","56", "9","233"]; console.log(Math.max.apply(Math,list)); </script> </body> </html> ``` https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/max The above code finds the Max number in the List. Can anyone tell me how does the below code work?. It seems it works if i pass `null or Math.` ``` console.log(Math.max.apply(Math,list)); ``` Does all the `user-defined/Native functions` have call and apply method which we can use?.