LINUX.ORG.RU

JavaScript


0

0

Подскажите пожалуйста.
Прошу прощения, что не совсем в тему...

Есть код на JavaScript'е

...
<form><input type=text id=mytext></form>
<script language=JavaScript>
function myFunction() { ... }
document.getElementById("mytext").onclick=myFunction;
</script>
...

Вопрос собственно в следующем: как передать в функцию myFunction какой-нибудь аргумент не пользуясь глобальными переменными и не объявляя этот перехватчик события в теге <input> ?

Заранее благодарен!

anonymous

<html>
<body>
<span id="foo">Click me 1</span>
<span id="bar">Click me 2</span>
<script>
function makeCallback(data) {
  return function() {
    alert(data);
  }
}

document.getElementById("foo").onclick=makeCallback("data for foo");
document.getElementById("bar").onclick=makeCallback("data for bar");
</script>
</body>
</html>

Это называется "замыкание" (closure).

anonymous
()
Ответ на: комментарий от anonymous

Огромное спасибо! А не могли бы вы дать мне какую-нибудь ссылку на документацию по этой теме? Я ни где не встречал ни слова про замыкания.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.