Skip to content

Commit

Permalink
maintain a single reference to the Object.prototype
Browse files Browse the repository at this point in the history
  • Loading branch information
jashkenas committed Dec 6, 2009
1 parent 689cd97 commit 86c2ad2
Showing 1 changed file with 8 additions and 5 deletions.
13 changes: 8 additions & 5 deletions underscore.js
Expand Up @@ -30,6 +30,9 @@
// Export the Underscore object for CommonJS.
if (typeof exports !== 'undefined') exports._ = _;

// Maintain a reference to the Object prototype for quick access.
var oproto = Object.prototype;

// Current version.
_.VERSION = '0.4.6';

Expand Down Expand Up @@ -392,7 +395,7 @@
_.keys = function(obj) {
if(_.isArray(obj)) return _.range(0, obj.length);
var keys = [];
for (var key in obj) if (Object.prototype.hasOwnProperty.call(obj, key)) keys.push(key);
for (var key in obj) if (oproto.hasOwnProperty.call(obj, key)) keys.push(key);
return keys;
};

Expand Down Expand Up @@ -453,22 +456,22 @@

// Is a given value a real Array?
_.isArray = function(obj) {
return Object.prototype.toString.call(obj) == '[object Array]';
return oproto.toString.call(obj) == '[object Array]';
};

// Is a given value a Function?
_.isFunction = function(obj) {
return Object.prototype.toString.call(obj) == '[object Function]';
return oproto.toString.call(obj) == '[object Function]';
};

// Is a given value a String?
_.isString = function(obj) {
return Object.prototype.toString.call(obj) == '[object String]';
return oproto.toString.call(obj) == '[object String]';
};

// Is a given value a Number?
_.isNumber = function(obj) {
return Object.prototype.toString.call(obj) == '[object Number]';
return oproto.toString.call(obj) == '[object Number]';
};

// Is a given variable undefined?
Expand Down

0 comments on commit 86c2ad2

Please sign in to comment.