Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   Переменные и быстродействие (https://javascript.ru/forum/css-html/75763-peremennye-i-bystrodejjstvie.html)

Ppezrk 04.11.2018 17:05

Переменные и быстродействие
 
Есть скрипт. Его перманентная задача - реагировать на действия пользователя. Этот скрипт имеет множество функций, и все они в определенном порядке вызываются когда пользователь совершает какое-либо действие. Естественно, что в теле каждой функции объявляются локальные переменные.
'use strict';
(function () {

    function doSomeThing(element) {
        let a = ...;
        let b = ...;
        ... do some stuff ...
    }

    function doSomeThingElse(element) {
        let c = ...;
        let d = ...;
        ... do some stuff ...
    }

    function finishAll(element) {
        let foo = ...;
        let bar = ...;
        ... do some stuff ...
    }
    
    window.onclick = function(event) {
        doSomeThing(event.target);
        doSomeThingElse(event.target);
        finishAll(event.target);
    }

})();

У меня такой вопрос: резонно ли вынести объявление всех этих переменных в начало скрипта ради ускорения его работы?
'use strict';
(function () {
    
    let element, a, b, c, d, foo, bar;
    
    function doSomeThing() {
        ... do some stuff ...
    }

    function doSomeThingElse() {
        ... do some stuff ...
    }

    function finishAll() {
        ... do some stuff ...
    }

    window.onclick = function(event) {
        element = event.target;
        doSomeThing();
        doSomeThingElse();
        finishAll();
    }

})();

Aetae 04.11.2018 18:43

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

Ppezrk 04.11.2018 18:49

Немного не понял к чему здесь "отстрелить себе ногу", но спасибо за ответ.

Aetae 04.11.2018 18:57

Легко можно случайно зацепить "чужую" переменною какой-нить функцией и породить сложноуловимый баг.

Ppezrk 04.11.2018 19:33

Предполагается, что все согласовано. Заранее было сказано, что дело касается скрипта, а не большой многомодульной программы весом в пару тонн. А скрипт этот имеет 100 строк и написан он одним человеком. Поэтому я и пытаюсь максимально оптимизировать его работу.

Aetae 04.11.2018 22:31

Ppezrk, ошибиться можно и в 1 строчке.)


Часовой пояс GMT +3, время: 19:48.