# Модуль ## extend Сделать функцию `extend`, которая добавляет один ассоциативный массив во второй: ```javascript var person = {name: "Иван", age: 17}; var extendedPerson = extend(person, {surname: "Иванов", fatherName: "Иванович"}); console.log(extendedPerson); //{name: "Иван", age: 17, surname: "Иванов", fatherName: "Иванович"} ``` ## copy Сделайте функцию `copy`, которая будет копировать ключи и значения объекта в новый объект. Копирование должно проверять типы данных, и делать **копии** вложенных массивов. Вложенные объекты не копируются (просто присваиваются) ## menuBuilder Скреативьте функцию `menuBuilder`, которая из структуры ```javascript var menu = [{text: "google", href: "http://google.com"}, {text: "ebay", href: "http://ebay.com"}, {text: "ya", href: "http://ya.ru"}, ]; ``` создает меню используя `ul`, `li`, `a` в определенном контейнере. `id` контейнера передается в качестве параметра: ```html ... ... ``` ```javascript menuBuilder("menuContainer", menu); //построить меню в элементе с id "menuContainer". ``` Вы можете создавать элементы любым удобным способом (строка, DOM, jQuery) ## gallery Напилите функцию, которая создает галерею картинок в определенном контейнере. В качестве параметра передавайте `id` контейнера и массив со строками ссылок на картинки: ```javascript gallery("galleryContainer",["https://static33.cmtt.ru/paper-media/fd/92/e5/0479e08f8e852d.png", "http://s00.yaplakal.com/pics/pics_original/1/9/4/3736491.jpg"]) ``` В идеале у вас должна быть стрелки вперед и назад, по клику на которые происходит смена картинки (клик на самой картинке - тоже удобно). Эффекты добавить по вкусу. ## multiplyTable Функция создает таблицу умножения в переданном `id` контейнере, размером NxN, в которой прямоугольник слева вверх от курсора мыши (включая курсор) выделен другим цветом и ячейки пронумерованы по порядку (слева направо, сверху вниз). Желательно иметь заголовки таблицы с числами (1..N) другим стилем. Заголовки не входят в подсвеченный прямоугольник.