@aspirantes

Возможно ли передать переменную таким образом?

Здравствуйте.
В общем нужно передать переменную, но в принимающей функции не могу указать, так как выведет mouse event (переменная иногда пустая). mouse event так же нужен.

func(var1);

function func() {
         alert(var1);
}
  • Вопрос задан
  • 101 просмотр
Решения вопроса 2
sergiks
@sergiks Куратор тега JavaScript
♬♬
Может, завести доп. функцию для мышиного события?
Основная логика, принимающая аргументом var1 — в одной функции.
События нажатия вызывает другую функцию, изнутри которой уже вызывать основную с известным аргументом.
let var1 = 1;

// основная логика — тут.
function logic(value) {
  alert(value);
}

// по мышиному событию
function mouseHandler(event) {
  logic(var1);
}

// напрямую
logic(var1);
Ответ написан
@zav19791979
Можно использовать через замыкание, но только в том случае если и объявление переменной и функции находятся в одной области.
const var1 = 10'

function func() {
         alert(var1); // тут будет выведено 10
}


или, как вариант, через привязку контекста
const func  = function(var1, var2,  var3) {
    console.log(var1); // 'значение var1'
}.bind(null, 'значение var1');

в этом случае значение
"this" будет равен "null"
"var1" всегда будет равно "значение var1"
а остальные значения будут равны тому что вы передадите в метод "func"

то есть "значение var1" будет передаваться, всегда, впереди любых аргументов

Вот тут более подробно про это рассказано https://learn.javascript.ru/bind
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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