У меня есть такой код, где я пытаюсь добавить обработчик события к некоторой кнопке. Я хотел бы использовать глобальную переменную & сохранить ее текущее значение при закрытии обратного вызова & не его ссылка.Закрытие в JavaScript
var globalNum="dummy";
function A()
{
$("#button").click(function()
{
$("#button").append(globalNum);
});
}
globalNum="dummyAgain";
Теперь, если событие щелчка обжигают, что будет добавлено - «пустышку» или «dummyAgain»? Я считаю, что это будет «dummyAgain» coz для закрытия ссылки глобальной переменной. Я хочу, чтобы значение связывалось. Я знаю, что могу создать локальную переменную внутри A, которую я могу инициализировать с помощью глобальной переменной &, связать это, но есть ли еще какой-то другой кулер?
Благодаря
+1 ответ. Следует отметить, что @Felix_Kling использует использование 'bind()', но также вызывает 'A()' перед обновлением 'globalNum'. Это будет эквивалент, я думаю, об удалении оболочки функции A() 'и непосредственного выполнения содержимого. – Andrew
Спасибо. Но я не хочу создавать локальные данные - по крайней мере, явно. В противном случае я мог бы просто определить localNum = globalNum в теле A и добавленном localNum при закрытии функции обратного вызова. Не то, что создание локальных данных имеет некоторые проблемы, я просто ищу более прохладный материал :) –
Затем используйте ответ @Felix Kling с одним незначительным изменением.Измените 'function A()' на 'функцию A (globalParam)' и вызовите его в конце с помощью '}) (globalParam);' Обратите внимание, что 'globalParam' внутри функции будет отличаться от' globalParam' снаружи. – Andrew