Для таких людей, как я, которые поначалу не изучали JavaScript систематически, первым чувством, когда я увидел with, было волнение — мне больше не нужно повторно писать «element.style.xxx = ...», мне нужно только
просмотреть обычная копия в буфер обмена, распечатать?
с (element.style) {
ххх = ...;
ггу = ...;
...
}
с (element.style) {
ххх = ...;
ггу = ...;
...
}Но как интерпретируемый язык JavaScript должен определять, что такое xxx/yyy во время выполнения. Для каждого имени (не только присвоенного, но и прочитанного!) сначала будут искаться свойства объекта в скобках, затем локальные переменные и, наконец, глобальные переменные. До популярности виртуальных машин JavaScript и технологии JIT такого рода проблемы производительности требовали большого внимания.
Правильный подход — создать локальный кэш переменных для element.style:
просмотреть обычную копию в буфере обмена?
варес = element.style;
es.xxx = ...;
эс.гггг = ...;
...
вар эс = element.style;
es.xxx = ...;
эс.гггг = ...;
...Это не только относительно уменьшает размер кода, но и работает намного лучше, чем element.style.xxx = ....