<html>
<head>
</head>
<body onload=>
<button></button>
<script>
function give_show(value) {
return function() {
console.log(value);
}
}
var button_element =document.getElementsByTagName('button')[0];
button_element.addEventListener('load',give_show('bong!'),false)
</script>
</body>
</html>
Приведенный выше код работает. в консоли я получил:Путаница относительно прохождения параметра в Javascript
bong!
Однако, если я изменю эту часть:
function give_show(value) {
return function() {
console.log(value);
}
к
function give_show(value) {
return function(value) {
console.log(value);
}
я получил что-то вроде
mouse.event
Что вызывает, что случиться?
FYI: Я использую консоль Safari, чтобы получить результат.
но значение '' '' '' '' '' 'mouse.event' ... – gdoron
@gdoron:' 'bong! '' - это начальное значение, переданное функции 'give_show()' и назначенное ' значение '. Таким образом, функция, возвращаемая 'give_show()', всегда будет иметь доступ к этому параметру. :) –
Вы используете возвращаемую функцию как обработчик события для кнопки. Обработчики событий передаются событием в качестве аргумента, так что это значение, которое вы получаете в своей функции. – Herms