Если вы используете drupal_add_js()
в своей функции построения формы, вы присоединяете JavaScript к странице, и все.
Если вы используете $form['#attached']['js']
, другие модули могут взаимодействовать, тестировать и изменять его по мере необходимости, используя hook_form_alter()
. Именно так вы должны выбирать каждый раз, когда ваш JavaScript функционально связан с конкретной формой.
Помимо этого, они функционально одинаковы.
Обратите внимание, что обычно лучше использовать библиотеки JavaScript, чем простые файлы JavaScript, поскольку они позволяют объявлять версии, сохранять отношения между JS и CSS, управлять зависимостями, ну, как правило, они гораздо более мощные.
Конечно, тогда вы должны использовать, $form['#attached']['library']
когда ваша библиотека JavaScript функционально связана с конкретной формой, и использовать только drupal_add_library()
тогда, когда никакая форма никак не связана с функцией библиотеки.
drupal_add_js()
файл шаблона, он сломает все, когда включено кэширование / агрегирование