|
@@ -1,3 +1,5 @@
|
|
|
+# DOM, замыкания и функциональное ООП.
|
|
|
+
|
|
|
## Введение в **DOM**.
|
|
|
|
|
|
**DOM** (*Document Object Model*) - внутренние объекты и функции *браузерного* **JS**, которые позволяют работать с деревом тэгов текущей загруженной страницы. **JS** через это **API** имеет полный доступ ко
|
|
@@ -84,7 +86,7 @@ document.addEventListener("mousemove",function(){
|
|
|
|
|
|

|
|
|
|
|
|
-> Задание
|
|
|
+> **Задание**
|
|
|
> Сделайте любое предыдущее задание по конструированию **HTML** используя **DOM**, а не конструирование строки. Проанализируйте отличия.
|
|
|
|
|
|
|
|
@@ -95,6 +97,8 @@ document.addEventListener("mousemove",function(){
|
|
|
>
|
|
|
> -— <cite>Guy Steele on the design of Scheme</cite>
|
|
|
|
|
|
+
|
|
|
+
|
|
|
> Closures are one of those few curious concepts that are paradoxically difficult because they are so simple. Once a programmer becomes used to a complex solution to a problem, simple solutions to the same problem feel incomplete and uncomfortable. But, as we will soon see, closures can be a simpler, more direct solution to the problem of how to organise data and code than objects.
|
|
|
>
|
|
|
> -- <cite>Doug Hoyte</cite>
|
|
@@ -187,3 +191,9 @@ function makeCounter(){
|
|
|
return {inc: inc, dec: dec, read: read};
|
|
|
}
|
|
|
```
|
|
|
+
|
|
|
+> **Задание**
|
|
|
+> Используя событие `DOMContentLoaded` назначьте обработчик на клик на том или ином элементе, который будет считать и выводить в элемент **DOM** количество кликов.
|
|
|
+
|
|
|
+
|
|
|
+
|