Learning JavaScript by reimplementing Underscore.js