mirror of
https://github.com/whoisclebs/lodash.git
synced 2026-01-29 06:27:49 +00:00
elaborate underscore initialization so that it works seamlessly on CommonJS, as well as in the browser
This commit is contained in:
@@ -12,9 +12,13 @@ $(document).ready(function() {
|
||||
equals(answer, 2, 'the loop broke in the middle');
|
||||
|
||||
var answers = [];
|
||||
_.each([1, 2, 3], function(num) { answers.push(num * this.multiplier);}, {multiplier : 5});
|
||||
_.each([1, 2, 3], function(num){ answers.push(num * this.multiplier);}, {multiplier : 5});
|
||||
equals(answers.join(', '), '5, 10, 15', 'context object property accessed');
|
||||
|
||||
answers = [];
|
||||
_.each("moe", function(letter){ answers.push(letter); });
|
||||
equals(answers.join(', '), 'm, o, e', 'iterates over the letters in strings');
|
||||
|
||||
answers = [];
|
||||
_.forEach([1, 2, 3], function(num){ answers.push(num); });
|
||||
equals(answers.join(', '), '1, 2, 3', 'aliased as "forEach"');
|
||||
|
||||
@@ -8,15 +8,25 @@
|
||||
|
||||
(function() {
|
||||
|
||||
var root = (typeof window != 'undefined') ? window : exports;
|
||||
/*------------------------- Baseline setup ---------------------------------*/
|
||||
|
||||
var previousUnderscore = root._;
|
||||
// Are we running in CommonJS or in the browser?
|
||||
var commonJS = (typeof window === 'undefined' && typeof exports !== 'undefined');
|
||||
|
||||
// Save the previous value of the "_" variable.
|
||||
var previousUnderscore = commonJS ? null : window._;
|
||||
|
||||
// Keep the identity function around for default iterators.
|
||||
var identity = function(value) { return value; };
|
||||
|
||||
var _ = root._ = {};
|
||||
|
||||
_.VERSION = '0.2.0';
|
||||
// Create a safe reference to the Underscore object for the functions below.
|
||||
var _ = {};
|
||||
|
||||
// Export the Underscore object for CommonJS, assign it globally otherwise.
|
||||
commonJS ? _ = exports : window._ = _;
|
||||
|
||||
// Current version.
|
||||
_.VERSION = '0.2.1';
|
||||
|
||||
/*------------------------ Collection Functions: ---------------------------*/
|
||||
|
||||
@@ -417,7 +427,7 @@
|
||||
// Run Underscore.js in noConflict mode, returning the '_' variable to its
|
||||
// previous owner. Returns a reference to the Underscore object.
|
||||
_.noConflict = function() {
|
||||
root._ = previousUnderscore;
|
||||
if (!commonJS) window._ = previousUnderscore;
|
||||
return this;
|
||||
};
|
||||
|
||||
@@ -452,10 +462,6 @@
|
||||
_.inject = _.reduce;
|
||||
_.filter = _.select;
|
||||
_.every = _.all;
|
||||
_.some = _.any;
|
||||
|
||||
/*------------------------- Export for ServerJS ----------------------------*/
|
||||
|
||||
if (typeof exports != 'undefined') exports = _;
|
||||
_.some = _.any;
|
||||
|
||||
})();
|
||||
|
||||
Reference in New Issue
Block a user