Here you can find the source of first(predicate, def)
Array.prototype.first = function (predicate, def) { var l = this.length; if (!predicate) return l ? this[0] : def == null ? null : def; for (var i = 0; i < l; i++){ if (predicate(this[i], i, this)) return this[i]; }//from w ww . java 2 s . c om return def == null ? null : def; };
Array.prototype.first = function (n) { 'use strict'; return this.slice(0, n || 1); };
Array.prototype.first = function(n) { if (this.length === 0 || n < 0) return void 0; if (n === undefined) return this[0]; if (n === 0) return []; return this.initial(this.length - n); };
Array.prototype.first = function (num) { if (num !== undefined) { return this.slice(0, num); return this[0]; };
Array.prototype.first = function(predicate) { for (var i = 0, l = this.length; i < l; i++) { if (predicate(this[i])) return this[i];
Array.prototype.first = function (predicate) { for (var i = 0; i < this.length; ++i) { if (predicate(this[i])) return this[i]; };