пункт 2 .
я загнал -не глянул на очерёдность вычислений в коде.
в любом случае там можно оптимизировать . Раскройте скобки -сведите всё к двум операциям. Здесь конечно прирост будет не заметен , но на сложных вычислениях результат будет заметен
eY *4 и eX*4 -по сути дела изменяемые величины. требующие вычисления всё остальное в выражениях константы :
obj.coords.top*4+100,
obj.coords.left*4+100
да и obj -можно сделать закрытым свойством и обращаться к нему (либо просто свойством), а не предавать в обработчик лишним аргументом
пункт 3
http://www.ozon.ru/context/detail/id/19106391/
некоторые его высказывания можно назвать спорными, но мозги в нужную строну поворачивает. Примеры там есть .
А в обще, довольно странно, как вы всё смешали .
Создаёте объекты,
а обращаетесь к методам и свойствам функции из него
переназначая их всякий раз при создании. А не к методам и свойствам объекта ....
Подводя итог: читаемость -да
форматирование -да
архитектура -нет
говнокод -да
базовые оптимизации -нет
читаемость и форматирование ничто в сравнении с неправильной архитектурой и говнокодом. Оптимизации не беру в расчёт
Склоняюсь к жесткому копипасту -копирование правильных участков кода из литературы , без понимания архитектуры , взаимодействий и базовых знаний о том , что и как работает
А вобще всё не так бы делал.
собрал бы всё в модуль
накинул бы наблюдатель ,и при заходе на изображение помеченное, классом , атрибутом ... включал бы лупу
а не создавал бы явно для каждого изображения объект