Можно узнать почему использовать this не лучшая идея?
Потому что ты завязываешь функцию на её контекст. Я считаю это плохой практикой. Такие функции сложно тестировать, сложно быть уверенным в том, что она всегда будет работать одинаково. Все, что нужно функции для работы должно прилетать в аргументы, а не в магический контекст, который сегодня один, а завтра другой. Благо, даже жквери все что может понадобиться прокидывает в аргументы явно.