diff --git a/js-core/homeworks/homework-10/index.html b/js-core/homeworks/homework-10/index.html
new file mode 100644
index 0000000..865ef08
--- /dev/null
+++ b/js-core/homeworks/homework-10/index.html
@@ -0,0 +1,10 @@
+
+
+
+
+ test page
+
+
+
+
+
diff --git a/js-core/homeworks/homework-10/src/main.js b/js-core/homeworks/homework-10/src/main.js
new file mode 100644
index 0000000..6da8be6
--- /dev/null
+++ b/js-core/homeworks/homework-10/src/main.js
@@ -0,0 +1,134 @@
+/*
+ *
+ * Задача 0
+ *
+ * Что вернет выражение z(x) ?
+ * Напишите ответ своими словами как вы понимаете
+ * В консоле не смотрите, сначала напишите, после проверьте себя
+ *
+ * */
+
+let y = 5;
+//созадет переменную y, в которую записывает значение 5
+let x = () => {
+ // console.log('We here')
+ return y;
+}
+// создает функцию x, которая возврщает 5
+
+let z = t => {
+ //создает функцию z, с аргументом t, которая перезаписывает y, но снова на 5.
+ let y = 5;
+ // return y
+ // если будетет return, то возьмет отсюда, так как віше не пойдет, найдет y здесь
+ // console.log('We here')
+ t();
+ // вызывает аргумент как функцию, которую потом туда передадим как аргумент
+};
+console.log(y);
+//должно вывести 5, так как обратится к внейшней переменной 11 строка
+z(x); // что вернет
+//вызывает фунцию z, передает аргументом фунцию x, перезаписывает y, но снова на 5
+//и вызывает фунцию x, которая возвращает(В - внимательность!!!!) y. Y возьмет и строки 18
+// поигрался, возврщает undefined, потому что функция ничего не возвращает, а только перезаписывает.
+// а если не обернуть в console.log вызов на 30 строке, то вообщей ничего не вернет, кроме console.log на 27 строке)))
+
+// /*
+// *
+// * TASK 1
+// * Создайте функцию которая будет превращать
+// * передаваемую строку в html тэг
+// *
+// *
+// * */
+
+// let $ = function(str) {
+// if(typeof str == 'string'){
+// let result = `<${str}>${str}>`
+// return result
+// }
+// };
+
+// let createBODY = $('body');
+// let createDIV = $('div');
+// console.log(createBODY); //
+// console.log(createDIV); //
+
+// /*
+// *
+// * TASK 2
+// *
+// * Создайте объект к которому можно будет применить любое число вызовов
+// // obj.method().method().method()
+// ---------------
+// * Передаваемое значение должно возвращаться в виде html тэгов (TASK 1)
+// * Передаваемые аргументы должны быть только в виде строки
+// * */
+
+
+var ezjQuery = {
+ tag: '',
+ state: [],
+ add(str, text){
+ let elem = text || ''
+ if(typeof str == 'string'){
+ this.tag += `<${str}>${elem}${str}>`
+ this.state.push(str);
+ return this
+ }
+ },
+// render(){
+// let elem = this.text || ''
+// let result = this.tag += `<${this.state[0]}>${elem}${this.state[0]}>`
+// // this.tag = ''
+// // console.log(this.tag)
+// return result
+// }
+};
+
+// ezjQuery
+// .add('body') //
+// .add('div') //
+// .add('h1'); //
+
+// /*
+// *
+// * TASK 3
+// * Доработйте метод add чтобы на каждом вызове следующий
+// * тэг помещался внутри предыдущего !
+// ---
+// * И добавьте объекту ezjQuery метод render, который будет возвращать
+// * сгенерированную строку
+// -----
+// * Методу add - второй параметр, который будет размещать
+// * информацию внутри тэга
+// *
+// */
+
+// example
+var helloList = ezjQuery
+ .add('body') //
+ .add('div') //
+ .add('ul') //
+ .add('li', 'Hello') //
+ // .render();
+console.log(helloList); //
+// Обратите внимание, что после вызова render создание строки началось сначала
+
+// var bodyDiv = ezjQuery
+// .add('body') //
+// .add('div') //
+// .render();
+// console.log(bodyDiv); //
+
+// Для выполнивших все задания
+// сделайте document.write(helloList) увидите результат :)
+
+// @SUPER
+/*
+ * Переименуйте объект ezjQuery в $.
+ * Создание перевого метода должено быть без метода
+ *
+ * $('body').add('li', 'hi').render() // hi
+ *
+ * */
\ No newline at end of file
diff --git a/js-core/homeworks/homework-11/index.html b/js-core/homeworks/homework-11/index.html
new file mode 100644
index 0000000..865ef08
--- /dev/null
+++ b/js-core/homeworks/homework-11/index.html
@@ -0,0 +1,10 @@
+
+
+
+
+ test page
+
+
+
+
+
diff --git a/js-core/homeworks/homework-11/src/main.js b/js-core/homeworks/homework-11/src/main.js
new file mode 100644
index 0000000..fab7a14
--- /dev/null
+++ b/js-core/homeworks/homework-11/src/main.js
@@ -0,0 +1,49 @@
+/*
+ *
+ * Сделайте 4 объекта - не усложняйте, просто наследование
+ * через __proto__
+ - Пользователь
+ - Верифицированный пользователь(админ)
+ - Гость
+ - База данных
+ - База хранит информацию о пользователях
+ - Пользователи знают мыло админа
+ - админ знает пароль от базы данных
+ - Гости могут зарегистрироваться в базе данных
+ *
+ * */
+let user = {
+ name: 'userName',
+}
+let admin = {
+ adminPass:'adminPass',
+ eMail: 'adminEmail'
+}
+let database = {
+ newUser:{},
+ password: 'databasePassword'
+}
+let guest = {
+
+}
+
+database.registerGuest = function() {
+ let newUserName = prompt('введите имя');
+ let newUserPass = prompt('придумайте пароль')
+ database.newUser.name = newUserName;
+ database.newUser.pass = newUserPass
+ console.log(database.newUser)
+}
+
+guest.__proto__.registerGuest = database.registerGuest
+database.__proto__ = user
+user.__proto__.eMail = admin.eMail
+admin.__proto__.password = database.password;
+console.log(`admin password for databae '${admin.password}'`)
+console.log(`admin mail - '${user.eMail}'`)
+console.log(guest.registerGuest())
+console.log(database)
+
+
+
+
diff --git a/js-core/homeworks/homework-8/src/main.js b/js-core/homeworks/homework-8/src/main.js
index b342210..98dc3af 100644
--- a/js-core/homeworks/homework-8/src/main.js
+++ b/js-core/homeworks/homework-8/src/main.js
@@ -82,7 +82,6 @@ console.log(validBraces('({[]})')); // => returns true
* */
function sum(num) {
- sum.catchNum = 0
if( num>1){
return num + sum(num-1)
}
diff --git a/js-core/homeworks/homework-9/src/main.js b/js-core/homeworks/homework-9/src/main.js
index 06ac582..f79597a 100644
--- a/js-core/homeworks/homework-9/src/main.js
+++ b/js-core/homeworks/homework-9/src/main.js
@@ -129,10 +129,16 @@ let junior = {};
// fn.length == arguments.length
-function addMethod(object, name, fn) {
-
+const addMethod = (object, name, fn) => {
+ object[name] = function() {
+ if (fn.length == arguments.length) {
+ return fn;
+ }
+ };
+ return fn();
}
+
addMethod(junior, 'ok', function() {
console.log('zero arguments');
});