Ivan Asmer 8 лет назад
Родитель
Сommit
10947da2bf
1 измененных файлов с 27 добавлено и 1 удалено
  1. 27 1
      05Functions.md

+ 27 - 1
05Functions.md

@@ -464,7 +464,33 @@ a = b
 a()
 ```
 
-### ООП в функциональном стиле
+### Знакомство: ООП в функциональном стиле. .
+
+Как видите, функция - такой же тип данных, как и остальные, однако этот тип имеет другой набор допустимых операций; в основном функции создают, передают и запускают.
+Так как ассоциативные массивы в **JS** могут хранить любой тип данных, то функции тоже могуть быть элементами объектов. Таким образом реализуется **ООП** в **JS**:
+
+```javascript
+var rectangle = {
+    x: 0,
+    y: 0,
+    w: 100,
+    h: 100,
+    color: "black",
+
+    draw: function(){
+        console.log("I'm drawing a rectangle with coordinates " + this.x + "x" + this.y + " and dimensions " + this.w + 'x' + this.h + " in " + this.color + " color");
+    }
+
+    setColor: function(color){
+        this.color = color;
+        this.draw();
+    }
+}
+
+rectangle.draw();
+```
+
+Таким образом, используя переменную `this`, функции-поля объектов могут получить доступ к другим полям объекта (`x`, `y` и другие в примере выше)