Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.11.2018, 17:05
Интересующийся
Отправить личное сообщение для Ppezrk Посмотреть профиль Найти все сообщения от Ppezrk
 
Регистрация: 26.10.2018
Сообщений: 12

Переменные и быстродействие
Есть скрипт. Его перманентная задача - реагировать на действия пользователя. Этот скрипт имеет множество функций, и все они в определенном порядке вызываются когда пользователь совершает какое-либо действие. Естественно, что в теле каждой функции объявляются локальные переменные.
'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();
    }

})();

Последний раз редактировалось Ppezrk, 04.11.2018 в 17:28.
Ответить с цитированием
  #2 (permalink)  
Старый 04.11.2018, 18:43
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,590

Нет, это способ отстрелить себе ногу нахрен.)
Если выигрыш на инициализацию переменных и есть(в чём я сомневаюсь), то он в пределах статистической погрешности и любой другой случайный фактор повлияет сильнее.
__________________
29375, 35
Ответить с цитированием
  #3 (permalink)  
Старый 04.11.2018, 18:49
Интересующийся
Отправить личное сообщение для Ppezrk Посмотреть профиль Найти все сообщения от Ppezrk
 
Регистрация: 26.10.2018
Сообщений: 12

Немного не понял к чему здесь "отстрелить себе ногу", но спасибо за ответ.
Ответить с цитированием
  #4 (permalink)  
Старый 04.11.2018, 18:57
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,590

Легко можно случайно зацепить "чужую" переменною какой-нить функцией и породить сложноуловимый баг.
__________________
29375, 35
Ответить с цитированием
  #5 (permalink)  
Старый 04.11.2018, 19:33
Интересующийся
Отправить личное сообщение для Ppezrk Посмотреть профиль Найти все сообщения от Ppezrk
 
Регистрация: 26.10.2018
Сообщений: 12

Предполагается, что все согласовано. Заранее было сказано, что дело касается скрипта, а не большой многомодульной программы весом в пару тонн. А скрипт этот имеет 100 строк и написан он одним человеком. Поэтому я и пытаюсь максимально оптимизировать его работу.
Ответить с цитированием
  #6 (permalink)  
Старый 04.11.2018, 22:31
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,590

Ppezrk, ошибиться можно и в 1 строчке.)
__________________
29375, 35
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Переменные: более правильный и быстрый код Булат Азат улы Общие вопросы Javascript 5 13.09.2017 00:06
Переменные в скрипте vvkk Элементы интерфейса 19 08.09.2014 18:10
Индивидуальные переменные в each Spamol jQuery 6 08.12.2012 14:34
Глобальные переменные kilogram Серверные языки и технологии 3 30.03.2012 15:59
Сеансовые переменные faiq Серверные языки и технологии 2 24.07.2011 10:32