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}>` +// 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}` + this.state.push(str); + return this + } + }, +// render(){ +// let elem = this.text || '' +// let result = this.tag += `<${this.state[0]}>${elem}` +// // 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'); });