title: NextMethod() explicit argument performance
body: <p>With the S3 object system, in a generic method you can delegate to the next method in a class hierarchy using the <code>NextMethod()</code> function. When Wickham describes this system at <a href="http://adv-r.had.co.nz/S3.html" rel="nofollow noreferrer">http://adv-r.had.co.nz/S3.html</a>, he uses <code>NextMethod()</code> without any arguments in his example:</p>
  
  <pre><code>baz &lt;- function(x) UseMethod("baz", x)
  baz.C &lt;- function(x) c("C", NextMethod())
  </code></pre>
  
  <p>I've always used <code>NextMethod()</code> without argument in my own code as well.</p>
  
  <hr>
  
  <p>I just noticed that <code>[.Date</code> uses an explicit argument:</p>
  
  <pre><code>&gt; `[.Date`
  function (x, ..., drop = TRUE) 
  {
      cl &lt;- oldClass(x)
      class(x) &lt;- NULL
      val &lt;- NextMethod("[")
      class(val) &lt;- cl
      val
  }
  </code></pre>
  
  <p>The documentation for <code>?NextMethod</code> says the following:</p>
  
  <blockquote>
    <p>Normally 'NextMethod' is used with only one argument, 'generic'</p>
  </blockquote>
  
  <p>In terms of performance, is calling <code>NextMethod("generic")</code> faster than <code>NextMethod()</code>? Is there any other reason to prefer one usage over the other? </p>