Привет всем. Изучаю JavaScript. Остановился на теме "Замыкание". Есть код
window.onload = function()
{
var button = document.getElementById("clickme");
var div = document.getElementById("message");
var message = "You clicked me ";
var count = 0;
button.onclick = function()
{
count ++;
div.innerHTML = message + count + " times!";
}
};
В книге написано что в этот код содержит три свободные переменные div, message, count
.
Вопрос А почему button не является свободным?
Простите за такой элементарный вопрос.
Нашел определение, что "свободные переменные — это переменные, которые не объявлены локально и не передаются в качестве параметра". Если посмотреть в замыкание, то мы ссылаемся на message
, div
и count
, которые как раз не передаются как параметры в замыкание и не объявлены в нем локально.
Позже заглянул в инструменты разработчика и обнаружил, что this
хранит ссылку на button
и считается локальной переменной. Получается, что button
скорее контекст исполнения функции нежели переменная переданная в замыкание, что логично ведь мы пишем button.onclick
, где onclick
функция-замыкание, а button
- объект в контексте которого она вызывается.
Поправьте, если я ошибаюсь.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
в чем отличие mergeMap() от flatMap()? mergeMap() нужен для слияния потока или как?
Здравствуйте, в верстке есть динамическое количество div блоков с классомour-services
Прога должна выявить сколько дней осталось до нового года! В чем заключается моя ошибка?
задачи состоит в том, чтобы сделать ajax запрос на сторонний доменвозможно это сделать используя модуль request? можно увидеть конкретный пример,...