JavaScript анонимные функции

Я прочитал следующее в Интернете на этих выходных, и я хотел знать, считают ли большинство других это правильным (лучшим) способом ведения дел.

Это не лучший (правильный) способ сделать что-то:

$ (document).ready (function () {$ ('# magic'). click (function (e) {$ ('# yayeffects'). slideUp (function () {//...});}); $ ('# счастье').load(url + ' #unicorns', function() {
        // ...
    });
}); 

Что это лучше

var PI = {
    onReady: function() {. $ ('# Магия') нажмите (PI.candyMtn);
        $('# счастье').load(PI.url + ' #unicorns', PI.unicornCb);
    },
    candyMtn: function(e) {
        $('#') Yayeffects slideUp(PI.slideCb).
    },
    slideCb: function () {...},
    unicornCb: function () {...}
};

$ (Документ).ready(PI.onReady);

Один работает лучше, чем другой? Проще для отладки?

Мысли? Комментарии?

2 ответа

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

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

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

Поместить связанные функции в один объект не обязательно лучше. В основном функция onReady плоха, если вы используете поведение слушателей для разных объектов dom.

не заботится о производительности. слушатель обычно не вызывается так часто, как это имеет значение. Если это так, то, скорее всего, есть проблема где-то еще.

Второй вариант можно использовать повторно - вы можете повторно использовать slideCb и другие обработчики для других событий для других элементов управления.

Другие вопросы по тегам