function.arguments question
<p>Please help me to understand following code:</p>

<p>Add method called 'later' to all objects. This method is used to call other method in future using <code>setTimeout</code>.</p>

<pre><code>Object.prototype.later = function (msec, method) {
    // save 'this' as 'that' so we can use 'this' in inner function
    var that = this;
    // I cannot understand: what [2] means 
    // args will be ['Make is']. How?
    var args = Array.prototype.slice.apply(arguments, [2]);

    if (typeof method === 'string') {
        method = that[method];
    }
    // now use setTimeout to call method in future
    setTimeout(function () { method.apply(that, args); }, msec);
    return that;
}

// example of using later method
var car = {};
car.make = 'Ford';
car.show = function (message) {
    alert(message + ' ' + this.make);
}
car.later(1000, 'show', 'Make is');
</code></pre>

<p>So, when we call <code>car.later</code>, the third parameter is passed and will be used in <strong>alert</strong> function</p>

<p>Question is: how do we read third parameter "Make is"?</p>
