| Сайт Игоря Кононученко → | Статьи ↓ |
Анализируя JavaScript код24 ноября 2008 |
|
Порой анализируя свой и чужой код, можно обнаружить много интересного даже в простых мелочах. Рассмотрим примеры. Спрятать и показатьТипичный код, — абсолютно симметричная пара методов для сокрытия и показа чего-то. Но решение не самое лучшее из-за дублирования:
Рефакторим:
Вполне резонно заметить, что получившегося кода стало больше на один метод и не ясно, стоит ли увеличивать комплексность кода. В данном случае экономия весьма не очевидна, как и затраты. Я за то чтобы делать рефакторинг, начиная с самого незначительного — все дело в стиле мышления (не говоря о гибкости, которая появилась). Поддерживая порядок, будешь жить в чистоте. Иначе — известно в чем. МассивыЧасто можно встретить такой вид создания:
Более короткая версия:
Удаление элемента из массива. Интуитивно-понятного метода
arr.without(el), который работает по той же самой схеме (все же замечу, что у прототайпа великолепные методы для расширения класса Array).
Тривиально, но многие не знают, что удаление из массива выполняет встроенная операция — arr.splice(номер элемента, количество удаляемых элементов) — еще метод позволяет делать замену.
Создание элементовЧасто можно увидеть большое количество кода создающего DOM-структуру. Пишутся обертки для удобного создания DOM-елементов. А ведь решение — не самое производительное. По производительности innerHTML — лучший. Исходя из этого, в большинстве случаев методы DOM отбрасываем (есть исключения, такие как тег — table в IE, он не дает ничего записать в свой innerHTML). Мне очень нравится класс Template в библиотеке Prototype, позволяющий создавать штмл подобным образом:
replace.
Еще на один момент следует обратить внимание. Временным контейнером штмл является массив строк и в конце происходит this.cbCity.innerHTML = options.join(""); — это дает лучшую производительность. В заключениеМне еще попадались различные стандартные ситуации. По мере возможности, в будущем соберу их еще в одну часть. |