Appel appliquer la méthode avec les arguments en JavaScript

Je voulais appeler une fonction en utilisant le javascript s'appliquent() la méthode. Cela fonctionne bien si la fonction n'a pas d'arguments. c'est à dire

function test()
{
  console.log(this);
}

body = document.getElementsByTagName("body")[0]; //shortcut to body element

test.apply(body); //returns [object HTMLBodyElement]

Mais je n'arrive pas à faire la même chose pour appeler une fonction qui a des arguments:

function test(msg)
{
  console.log(msg);
}

body = document.getElementsByTagName("body")[0]; //shortcut to body element

test(this).apply(body); //mysteriously returns the correct result, then
//typeError: 'undefined' is not an object (evaluating "test(this).apply".

Les exemples ci-dessus sont complètement trivial, mais le grain de ma question est: Comment puis-je utiliser l'appliquer() méthode pour appeler une fonction avec des arguments.

OriginalL'auteur dkugappi | 2011-10-06