|
@@ -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` и другие в примере выше)
|
|
|
|
|
|
|
|
|
|