мы это делаем уже внутри какого-то скоупа. И функция, которую мы получим, при своём вызове всё равно пойдёт вверх по всей этой цепочке.
Если Вы пишите код с var, let то это уже ооп