From 9bd23566f439c732f74f7fdd110b6f03c6b40c2d Mon Sep 17 00:00:00 2001 From: baksha2008 Date: Fri, 29 Jun 2018 20:05:35 +0300 Subject: [PATCH 1/2] 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/2] 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) }