wbrapist
@wbrapist
Ты в порядке?

Как подключить какой-то набор переменных в функцию?

Привет.

Есть две функции, делают разные вещи, но используют, во основном, одни и те же переменные(работа с элементами DOM).
Получается, две функции - два раза дублирую список объявлений одних и тех же переменных. Хотел вынести в глобальную область, потом вспомнил, что это якобы плохая практика. Какие ещё есть варианты?
  • Вопрос задан
  • 163 просмотра
Решения вопроса 4
AndrewN1
@AndrewN1
Создаете какой-то namespace, и выносите его в глобальный скоуп. Например:
mySuperMegaTool = {
  var1: ...,
  var2: ...,
  func: ...
}
Ответ написан
Комментировать
JustSneaker
@JustSneaker
Front-end разработчик
Если переменная используется в нескольких функциях, и, при этом, функции не изменяют её, то вынести не можно, а даже нужно для экономии памяти. Если же функции оперируют с переменными, то нужно сделать как у него ↓
Ответ написан
Комментировать
Stalker_RED
@Stalker_RED
var myData = [a, b, c]

func(...myData)
someFunc(...myData)
otherFunc.apply(null, myData)

Spread_operator
apply
Ответ написан
Комментировать
sergiks
@sergiks Куратор тега JavaScript
♬♬
Можно «обернуть» эти переменные в объект, который передавать параметром во все функции:
var commons = {
  el1: document.getElementById('id1')
  ,el2: document.getElementById('id2')
  ,el3: document.getElementById('id3')
}

function A( opts ){
  opts.el1.innerHTML = 'aaa';
}

function B( opts ){
  opts.el1.innerHTML = 'A.A.A.';
  opts.el2.innerHTML = 'bbb';
  opts.el3.innerHTML = 'ccc';
}

A( commons);
B( commons);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы