?

Log in

No account? Create an account
Javascript мое личное открытие - frostbite3 [entries|archive|friends|userinfo]
frostbite3

[ website | My Website ]
[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

Javascript мое личное открытие [Jul. 28th, 2011|09:26 am]
frostbite3
[Tags|, , ]

Вот понадобилось мне переписать генерацию некого элемента, чтобы работало не только в Эксплорере.
Вернее мне понадобилось починить переписанное, чтобы действительно работало, а не сыпало ошибками.
Проблема там была такая: в обработчик предавалась глобальная переменная, которая менялась по некому закону, и на момент вызова обработчика ее значение уже не соответствовало ожидаемому. То есть значение параметра должно быть известно на этапе подключения обработчика, а не на этапе вызова. Раньше то, оно конкатенацией добавлялось, а теперь что делать?
Однако же, Javascript не подвел:

var someParam = getSomethingFromGlobalVar();
var element = document.getElementById('elementId');
element.onclick = function() { onClickHandler(someParam) };

function onClickHandler(param) {
alert(param);
}

С точки зрения меня, привыкшего к нормальным языкам тут должна быть явная runtime ошибка, переменной то нет в момент вызова. Но Javascript как выяснилось в таком случае подставляет значение локальной переменной. Заработало. Вроде уже прилично я с ним работаю, а все равно такие штуки удивляют.
linkReply