Calling methods from a constructor's prototype on objects of another type, is a common pattern in javascript: e.g. using Array::slice to use all or part of the arguments object as an array.
function (first/*, rest... */) {
var rest = Array.prototype.slice.call(arguments, 1);
...
}