Ви повинні поставити це на глобальний обсяг з кількох причин.
Введення функції помічника в абонента збільшує довжину абонента. Довжина функції майже завжди є негативним показником; короткі функції легше зрозуміти, запам’ятати, налагодити і підтримувати.
Якщо функція помічника має розумне ім’я, читання цього імені достатньо, не потребуючи ознайомлення поблизу. Якщо ви робите потреба побачити визначення помічника для того , щоб зрозуміти функцію абонента, то , що абонент робить занадто багато, або працює надто багато рівнів абстракції одночасно.
Наявність помічника в усьому світі дозволяє іншим функціям викликати його, якщо це виявляється загалом корисним. Якщо помічник недоступний, ви спокушаєтеся вирізати та вставити його, або забути його, або погано повторити його, або зробити іншу функцію довшою, ніж повинна бути.
Вкладення функції helper збільшує спокусу використовувати змінні з області виклику без декларування, так що стає незрозумілим, що таке входи та виходи помічника. Якщо функція не чітко вказує, на яких даних вона працює і які наслідки вона має, це зазвичай є ознакою незрозумілих обов'язків. Оголошення дупи помічника окремою функцією змушує вас знати, що це насправді робить.
Редагувати
Це виявилося більш суперечливим питанням, ніж я думав. Для уточнення:
У JavaScript великі функції, що охоплюють файли, часто виконують роль класів, оскільки мова не забезпечує жодного іншого механізму обмеження обсягу. Звичайно, функції помічників повинні входити в такі квазікласи, а не поза ними.
І справа про більш легких передбачає повторного використання , що якщо підпрограма дійсно стає все більш широко використовуються, ви готові , щоб перемістити його з місця в цілому і помістити його в потрібному місці, наприклад , в рядку службовій бібліотеці або в ваш глобальний реєстр конфігурації. Якщо ви не хочете замовляти свій код таким чином, ви, можливо, також вкладете підпрограму так само, як ви це зробите із звичайним методом "Об'єкт" на більш "блокованій" мові.