У меня такое ощущение, что вы изучаете не с того места.
js учить с фреймворка? php так же?
по-моему наоборот, язык -> фреймворк. Причем, начиная понимать какой либо язык - не либу или движок на этом языке - а именно язык, вопросы подобные отпадут. Другие языки быстрее осваиваются, приходит понимание, для чего лучше использовать тот/другой язык и базирующиеся на нем либу/движок.
Вам хватит сорцев / комментариев / доков / если повезет - качественных примеров, что бы понять, как оно в этом языке/движке/либе сделано, и почему, и даже как улучшить.
Нулевой старт - базовые основы языка, синтаксис, операторы и тд, Примера для js:
https://learn.javascript.ru/
UPD:
Потом или параллельно попробуйте написать свой undescore.js с оглядкой на сам undescore)
Сначала будет большой js файл практически с копипастой, глядишь - как дойдете до промисов - будет проект на гите не в виде одного файла, а завернутый в webpack + testem + по мелочи с сорцами в es6 и траспойлерами)