heydenberk explained it well, but just to add some clarity on why you'd want to use prototype.apply for array as an argument -
http://stackoverflow.com/questions/2856059/passing-an-array-...
http://stackoverflow.com/questions/1316371/converting-a-java...
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Refe...
I'm still learning more about JS and so I'm no expert, but it seems to be similar in concept to use the ... in other languages. I think Groovy has something similar and Java has the varargs. They have obvious differences, but conceptually I think of it as passing in a variable number of args.