Browse Source

07 headers

Ivan Grinkin 8 years ago
parent
commit
127be13312
1 changed files with 20 additions and 4 deletions
  1. 20 4
      07ObjectsFunctionalStyleHomeWork.md

+ 20 - 4
07ObjectsFunctionalStyleHomeWork.md

@@ -2,12 +2,26 @@
 
 ## ООП: база.
 - Напишите конструктор класса `Person` со следующими параметрами:
-   `name`, `surname`, `fatherName`, `age`, `sex`, `salary`, `married`, сохраняемыми в полях объекта.
+   `name`, `surname`, `age`, `sex`, `salary`, `married`, сохраняемыми в полях объекта.
 - Напишите конструктор класса `Person` с теми же параметрами, что и в предыдущей задаче. Поля должны хранится в *замыкании*. Для задания и чтения
-   параметров напишите набор *геттеров и сеттеров*: `getName`, `setName`, `getSurname`, `setSurname`, `getFatherName`, `setFatherName`, `getAge`, 
-   `setAge`, `getSex`, `setSex`, `getSalary`, `setSalary`, `getMarried`, `setMarried`. Каждый из сеттер должен *валидировать* 
-   (проверять) данные. Если данные некорректны, данные внутри замыкания не изменяются. 
+   параметров напишите набор *геттеров и сеттеров*: `getName`, `setName`, `getSurname`, `setSurname`,  `getAge`, 
+   `setAge`, `getSex`, `setSex`, `getSalary`, `setSalary`, `getMarried`, `setMarried`. Каждый из сеттер должен проверять данные.
+   Если данные некорректны, данные внутри замыкания не изменяются. 
    **Сеттер** всегда возвращает *текущее* значение переменной. См. [пример](http://gitlab.a-level.com.ua/gitgod/FrontendLectures/src/master/07ObjectsFunctionalStyle.md#--)
+- Добавьте возможность задавать родительский объект с помощью метода `setFather`
+- Добавьте к предыдущем заданию метод `getFatherName`, которое создает строку с корректным именем, добавляя суффикс "-ович" для мужчин и "-овна" для женщин
+```javascript
+var father = new Person("Ivan", "Petrov", 50, "male", 100500, true)
+var daughter = new Person("Maria", "Petrova", 25, "female", 500, false)
+
+daughter.setFather(father)
+daughter.getFatherName() // => "Ivanovna"
+```
+- Добавьте к предыдущем заданию метод `addChild`, который добавляет ребенка в массив в замыкании и возвращает количество детей. При добавлении проверяйте разницу в возрасте, она должна быть хотя бы лет 15.
+  Так же не позволяйте дублировать детей в массиве. 
+```javascript
+father.addChild(daughter)
+```
 
 ## Замыкания
 - Напишите функцию `makeCounter`, которая определяет переменную `counter` и возвращает другую функцию, увеличивающую `counter` каждый вызов и возвращающую её значение:
@@ -80,4 +94,6 @@ var someNumber = zeroPrompt("Введите число")              // выз
 
 Массив, который идет третьим параметром определяет, какие поля должны подменяться значением по умолчанию, а какие - задаваться в последствии (`undefined`).  
 
+## Рекурсия
 
+Сделать [задание на синий пояс](http://gitlab.a-level.com.ua/gitgod/FrontendLectures/src/master/04AssociativeArraysHomeWork.md#----1), используя рекурсию.