Подтвердить что ты не робот

Являются ли анонимные функции плохой практикой в ​​JavaScript?

Я читал, что использование анонимных функций в javascript - это плохая практика, потому что это может сделать отладку болью, но я не видел этого для себя. Являются ли анонимные функции в JavaScript действительно плохой практикой, и если да, то почему?

4b9b3361

Ответ 1

Нет, анонимные функции используются повсеместно в JavaScript в Интернете. Это может сделать отладку немного сложнее в местах, но не достаточно, чтобы сказать, что их не следует использовать.

Например, JQuery широко использует их.

Существует много раз, когда вы хотите использовать их по формально объявленным функциям, например, когда вы хотите ограничить их объем.

Ответ 2

Я бы сказал, наоборот, лямбды (псевдоним) делают некоторые выражения более сжатыми. Если вы привязываете несколько обработчиков событий к нескольким событиям, было бы утомительно давать имя функции каждому обработчику событий, например.

Это более полезно и экономит время, чем нет, даже если это делает отладку немного сложнее, но я редко борюсь с отладкой, потому что функция анонимна. И вы должны использовать JSLint, чтобы облегчить вашу жизнь при кодировании.

Ответ 3

Я собираюсь немного протестовать против потока и сделать так, что анонимные функции действительно являются плохой практикой, хотя они широко используются.

1) Анонимные функции нельзя использовать повторно.

2) Анонимные функции, по определению, не имеют имени и поэтому не описывают, что они делают. К сожалению, код не является самодокументированным.

3) Анонимные функции не могут быть протестированы изолированно с рамкой модульного тестирования.

4) Я лично считаю, что они затрудняют чтение и отладку кода. Хотя ваш опыт может отличаться.

Я действительно думаю, что есть ситуации, когда анонимная функция является лучшим выбором и как общее правило, чтобы избежать вышеупомянутых недостатков, я почти всегда называю мои функции.

Ответ 4

Наиболее определенно нет, лямбда-функции используются повсюду, почти повсеместно.

Ответ 5

Просто потому, что каждый использует их, не делает их хорошей практикой (все помнят использование элемента таблицы для макета?). Но они великолепны, потому что они могут помочь прояснить и упростить ваш код, давая меньше возможностей для того, чтобы что-то пошло не так.

Но анонимные функции не должны быть настолько сложными, что отладка становится сложной с ними. В этом случае, возможно, лучше сделать новую функцию.

Ответ 6

Вот моя консоль для браузера:

// Bad
poopy = function(){}
// function (){}
groupy = poopy;
// function (){}

// Good
droopy = function loopy(){};
// function loopy(){}
floupy = droopy;
// function loopy(){}   

Представьте, что вы отлаживаете что-то, и у вас есть имя функции под названием groupy. Вы вводите его имя, чтобы получить дополнительную информацию об этом. Если эта функция была установлена ​​как в плохом разделе, вы не знаете, что такое оригинальная декларация. Если, однако, вы определяете имя своей функции, как в разделе "Хороший", тогда вы всегда будете иметь следы исходного имени функции.

Ответ 7

Анонимные выражения функций - лучшая практика в JavaScript.