From 9bd23566f439c732f74f7fdd110b6f03c6b40c2d Mon Sep 17 00:00:00 2001 From: baksha2008 Date: Fri, 29 Jun 2018 20:05:35 +0300 Subject: [PATCH 1/3] homework-9 --- js-core/homeworks/homework-9/src/main.js | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) 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'); }); From 0ce5317eebfd6602ad19e21fa11d884530ccdf73 Mon Sep 17 00:00:00 2001 From: baksha2008 Date: Tue, 3 Jul 2018 07:51:43 +0300 Subject: [PATCH 2/3] homework_10 --- js-core/homeworks/homework-10/index.html | 10 ++ js-core/homeworks/homework-10/src/main.js | 124 ++++++++++++++++++++++ js-core/homeworks/homework-8/src/main.js | 1 - 3 files changed, 134 insertions(+), 1 deletion(-) create mode 100644 js-core/homeworks/homework-10/index.html create mode 100644 js-core/homeworks/homework-10/src/main.js 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..6d01425 --- /dev/null +++ b/js-core/homeworks/homework-10/src/main.js @@ -0,0 +1,124 @@ +/* + * + * Задача 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: '', + add(str, text){ + let elem = text || '' + if(typeof str == 'string'){ + this.tag += `<${str}>${elem}`; + return this.tag + } + } +}; + +console.log(ezjQuery.add('body')) // +console.log(ezjQuery.add('div')) //
+console.log(ezjQuery.add('h1')); //

+ +// /* +// * +// * TASK 3 +// * Доработйте метод add чтобы на каждом вызове следующий +// * тэг помещался внутри предыдущего ! +// --- +// * И добавьте объекту ezjQuery метод render, который будет возвращать +// * сгенерированную строку +// ----- +// * Методу add - второй параметр, который будет размещать +// * информацию внутри тэга +// * +// */ + +// example +var helloList = ezjQuery +console.log(helloList.add('body')) // +console.log(helloList.add('div')) //
+console.log(helloList.add('ul')) //
    +console.log(helloList.add('li', 'Hello')) //
    • Hello
    +console.log(helloList.render()); +console.log(helloList); //
    • Hello
    +// Обратите внимание, что после вызова render создание строки началось сначала + +var bodyDiv = ezjQuery + .add('body') // + .add('div') //
    + .render(); +console.log(bodyDiv); //
    + +// // Для выполнивших все задания +// // сделайте document.write(helloList) увидите результат :) + +// // @SUPER +// /* +// * Переименуйте объект ezjQuery в $. +// * Создание перевого метода должено быть без метода +// * +// * $('body').add('li', 'hi').render() //
  • hi
  • +// * +// * */ 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) } From dfb6b4eafeff196b03264d9bde8b200cdfacfeff Mon Sep 17 00:00:00 2001 From: baksha2008 Date: Tue, 10 Jul 2018 10:22:12 +0300 Subject: [PATCH 3/3] homework-11 --- js-core/homeworks/homework-10/src/main.js | 82 +++++++++++++---------- js-core/homeworks/homework-11/index.html | 10 +++ js-core/homeworks/homework-11/src/main.js | 49 ++++++++++++++ 3 files changed, 105 insertions(+), 36 deletions(-) create mode 100644 js-core/homeworks/homework-11/index.html create mode 100644 js-core/homeworks/homework-11/src/main.js diff --git a/js-core/homeworks/homework-10/src/main.js b/js-core/homeworks/homework-10/src/main.js index 6d01425..6da8be6 100644 --- a/js-core/homeworks/homework-10/src/main.js +++ b/js-core/homeworks/homework-10/src/main.js @@ -42,17 +42,17 @@ z(x); // что вернет // * // * */ -let $ = function(str) { - if(typeof str == 'string'){ - let result = `<${str}>` - return result - } -}; +// let $ = function(str) { +// if(typeof str == 'string'){ +// let result = `<${str}>` +// return result +// } +// }; -let createBODY = $('body'); -let createDIV = $('div'); -console.log(createBODY); // -console.log(createDIV); //
    +// let createBODY = $('body'); +// let createDIV = $('div'); +// console.log(createBODY); // +// console.log(createDIV); //
    // /* // * @@ -68,18 +68,28 @@ console.log(createDIV); //
    var ezjQuery = { tag: '', + state: [], add(str, text){ let elem = text || '' if(typeof str == 'string'){ - this.tag += `<${str}>${elem}`; - return this.tag + 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 +// } }; -console.log(ezjQuery.add('body')) // -console.log(ezjQuery.add('div')) //
    -console.log(ezjQuery.add('h1')); //

    +// ezjQuery +// .add('body') // +// .add('div') //
    +// .add('h1'); //

    // /* // * @@ -97,28 +107,28 @@ console.log(ezjQuery.add('h1')); //

    // example var helloList = ezjQuery -console.log(helloList.add('body')) // -console.log(helloList.add('div')) //
    -console.log(helloList.add('ul')) //
      -console.log(helloList.add('li', 'Hello')) //
      • Hello
      -console.log(helloList.render()); + .add('body') // + .add('div') //
      + .add('ul') //
        + .add('li', 'Hello') //
        • Hello
        + // .render(); console.log(helloList); //
        • Hello
        // Обратите внимание, что после вызова render создание строки началось сначала -var bodyDiv = ezjQuery - .add('body') // - .add('div') //
        - .render(); -console.log(bodyDiv); //
        +// var bodyDiv = ezjQuery +// .add('body') // +// .add('div') //
        +// .render(); +// console.log(bodyDiv); //
        -// // Для выполнивших все задания -// // сделайте document.write(helloList) увидите результат :) +// Для выполнивших все задания +// сделайте document.write(helloList) увидите результат :) -// // @SUPER -// /* -// * Переименуйте объект ezjQuery в $. -// * Создание перевого метода должено быть без метода -// * -// * $('body').add('li', 'hi').render() //
      • hi
      • -// * -// * */ +// @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) + + + +