|
@@ -1,5 +1,6 @@
|
|
|
# Домашнее задание: ООП в функциональном стиле.
|
|
|
|
|
|
+## ООП: база.
|
|
|
- Напишите конструктор класса `Person` со следующими параметрами:
|
|
|
`name`, `surname`, `fatherName`, `age`, `sex`, `salary`, `married`, сохраняемыми в полях объекта.
|
|
|
- Напишите конструктор класса `Person` с теми же параметрами, что и в предыдущей задаче. Поля должны хранится в *замыкании*. Для задания и чтения
|
|
@@ -7,6 +8,8 @@
|
|
|
`setAge`, `getSex`, `setSex`, `getSalary`, `setSalary`, `getMarried`, `setMarried`. Каждый из сеттер должен *валидировать*
|
|
|
(проверять) данные. Если данные некорректны, данные внутри замыкания не изменяются.
|
|
|
**Сеттер** всегда возвращает *текущее* значение переменной. См. [пример](http://gitlab.a-level.com.ua/gitgod/FrontendLectures/src/master/07ObjectsFunctionalStyle.md#--)
|
|
|
+
|
|
|
+## Замыкания
|
|
|
- Напишите функцию `makeCounter`, которая определяет переменную `counter` и возвращает другую функцию, увеличивающую `counter` каждый вызов и возвращающую её значение:
|
|
|
|
|
|
```javascript
|
|
@@ -75,6 +78,6 @@ var zeroPrompt = myBind(prompt, window, [undefined, "0"]) //аналогично
|
|
|
var someNumber = zeroPrompt("Введите число") // вызывает prompt("Введите число","0")
|
|
|
```
|
|
|
|
|
|
-Массив, который идет третьим параметром определяет, какие поля должны подменяться значением по умолчанию, а какие - задаваться в последствии (undefined).
|
|
|
+Массив, который идет третьим параметром определяет, какие поля должны подменяться значением по умолчанию, а какие - задаваться в последствии (`undefined`).
|
|
|
|
|
|
|