Где необходимо применение ООП на Javascript?
модели, контроллеры, сервисный слой реализуются как классы (если можно так сказать, ибо в js нету классов, есть прототипное наследование у объектов)
посмотрите проекты реализованные на backbone.js например. Но по сути вам будет проще вооружиться angular, где хотя бы вам не дадут разгуляться в плане написания своей системы классов и прочих велосипедов, который по сути в js и не нужны.
Как только вы начали изучать Javascript, вы сразу приступили к изучению ООП, поскольку:
— объявив переменную внутри функции, вы столкнулись с инкапсуляцией
— вызвав у объекта метод toSring(), вы столкнулись с полиморфизмом и наследованием
MVC-паттерны, ядро, песочница (или сервисный слой) — это только реализация разных подходов и не могут быть признаками ООП.
Подробнее про паттерны habrahabr.ru/post/215605 и в книжках Закаса и Олмани (есть и масса других).