From 7290acfa27c85e6042901eccf7072a24b4474dd8 Mon Sep 17 00:00:00 2001 From: baksha2008 Date: Fri, 22 Jun 2018 06:59:06 +0300 Subject: [PATCH 1/4] homemade_7 --- js-core/homeworks/homework-7/index.html | 10 ++ js-core/homeworks/homework-7/src/main.js | 111 +++++++++++++++++++++++ 2 files changed, 121 insertions(+) create mode 100644 js-core/homeworks/homework-7/index.html create mode 100644 js-core/homeworks/homework-7/src/main.js diff --git a/js-core/homeworks/homework-7/index.html b/js-core/homeworks/homework-7/index.html new file mode 100644 index 0000000..865ef08 --- /dev/null +++ b/js-core/homeworks/homework-7/index.html @@ -0,0 +1,10 @@ + + + + + test page + + + + + diff --git a/js-core/homeworks/homework-7/src/main.js b/js-core/homeworks/homework-7/src/main.js new file mode 100644 index 0000000..89ff466 --- /dev/null +++ b/js-core/homeworks/homework-7/src/main.js @@ -0,0 +1,111 @@ +// 'use strict'; + +// /* +// * +// * TASK 1 +// * +// * Напишите функцию которая будет вызываться трижды и складывать +// * все передаваемые ей числа +// * +// * */ + +// function add(x) { +// return function(a){ +// return function(b){ +// return x + a + b +// } +// } +// } + +// console.log(add(1)(2)(3)); // 6 +// console.log(add(10)(5)(15)); // 30 + +// /* +// * +// * TASK 2 +// * +// * Напишите функцию которая возвращает объект и одно из свойств объекта +// * это функция +// * После каждого нового вызова метода объекта(функции объекта) в консоле должно отображаться +// * число на 1 больше чем предыдущее +// * --------------------------------------- +// * так же у объекта должен быть метод обнуления счетчика +// * Узнать счетчик напрямую в объекте, нельзя +// * +// * */ + +// function patternModule(num) { +// let counter = 0; +// let obj = { +// method: function(){ +// return ++counter +// }, +// method2: function(){ +// return counter = 0 +// } +// } +// return obj; + +// } + +// // patternModule + +// let test = patternModule(); // 0 +// console.log(test.method()); //1 +// console.log(test.method()); //2 +// console.log(test.method()); //3 +// console.log(test.method()); //4 +// console.log(test.method()); //5 +// console.log(test.method()); //6 +// console.log(test.method2()); //0 +// console.log(test.method()); //1 +// console.log(test.method()); //2 +// console.log(test.method()); //3 +// console.log(test.method2()); //0 + + +// /* +// * TASK 1 +// * +// * Напишите функцию которая принимает 4 аргумента: +// * +// * - Объект +// * - Имя свойства с которым связывается метод +// * - Сколько раз можно вызвать метод * +// * - Объявление привязываемого метода ( функция ) +// * +// * При вызове метода отобразите сумму передаваемых +// * параметров. +// * Когда заканчивается счетчик, отображается ошибка +// * +// * */ + +let jun = {}; + +function methodCounter(obj, name, num, fn) { + obj[name] = function(...args){ + if(num>0){ + return [num--, fn(args)] + } + return `ERROR ! add more methods` + } + }; + +methodCounter(jun, 'logger', 2, function (args) { + let sumArgs = args.reduce(function(newValue,elem){ + return newValue + elem + }, 0); + return sumArgs; +}); +console.log(jun.logger(1, 2, 3, 4)); // 2, 10 +console.log(jun.logger(5, 5, 5, 5)); // 1, 20 +console.log(jun.logger(5, 5)); // ERROR ! add more methods + +// jun.addCounter(10, methodName); +// @SUPER, + +/* + * Добавьте функции methodCounter, возможность увеличивать счетчик + * на заданное число + * + * */ \ No newline at end of file From 990e8671bcf055beb90ed8c22f62d3666e7c4e0d Mon Sep 17 00:00:00 2001 From: baksha2008 Date: Fri, 22 Jun 2018 15:21:51 +0300 Subject: [PATCH 2/4] homework-7 fixed --- js-core/homeworks/homework-7/src/main.js | 93 ++++++++++++------------ 1 file changed, 48 insertions(+), 45 deletions(-) diff --git a/js-core/homeworks/homework-7/src/main.js b/js-core/homeworks/homework-7/src/main.js index 89ff466..f7d1301 100644 --- a/js-core/homeworks/homework-7/src/main.js +++ b/js-core/homeworks/homework-7/src/main.js @@ -1,24 +1,24 @@ -// 'use strict'; +'use strict'; -// /* -// * -// * TASK 1 -// * -// * Напишите функцию которая будет вызываться трижды и складывать -// * все передаваемые ей числа -// * -// * */ +/* + * + * TASK 1 + * + * Напишите функцию которая будет вызываться трижды и складывать + * все передаваемые ей числа + * + * */ -// function add(x) { -// return function(a){ -// return function(b){ -// return x + a + b -// } -// } -// } +function add(x) { + return function(a){ + return function(b){ + return x + a + b + } + } +} -// console.log(add(1)(2)(3)); // 6 -// console.log(add(10)(5)(15)); // 30 +console.log(add(1)(2)(3)); // 6 +console.log(add(10)(5)(15)); // 30 // /* // * @@ -34,34 +34,36 @@ // * // * */ -// function patternModule(num) { -// let counter = 0; -// let obj = { -// method: function(){ -// return ++counter -// }, -// method2: function(){ -// return counter = 0 -// } -// } -// return obj; +function patternModule(num) { + let counter = 0; + let obj = { + method: function(){ + ++counter + return counter + }, + method2: function(){ + counter = 0 + return counter + } + } + return obj; -// } +} -// // patternModule +// patternModule -// let test = patternModule(); // 0 -// console.log(test.method()); //1 -// console.log(test.method()); //2 -// console.log(test.method()); //3 -// console.log(test.method()); //4 -// console.log(test.method()); //5 -// console.log(test.method()); //6 -// console.log(test.method2()); //0 -// console.log(test.method()); //1 -// console.log(test.method()); //2 -// console.log(test.method()); //3 -// console.log(test.method2()); //0 +let test = patternModule(); // 0 +console.log(test.method()); //1 +console.log(test.method()); //2 +console.log(test.method()); //3 +console.log(test.method()); //4 +console.log(test.method()); //5 +console.log(test.method()); //6 +console.log(test.method2()); //0 +console.log(test.method()); //1 +console.log(test.method()); //2 +console.log(test.method()); //3 +console.log(test.method2()); //0 // /* @@ -83,9 +85,10 @@ let jun = {}; function methodCounter(obj, name, num, fn) { + let counter = num; obj[name] = function(...args){ - if(num>0){ - return [num--, fn(args)] + if(counter>0){ + return [counter--, fn(args)] } return `ERROR ! add more methods` } From 70c1493429d7a0f172e4a68d1402d93e0b8fa069 Mon Sep 17 00:00:00 2001 From: baksha2008 Date: Fri, 22 Jun 2018 17:10:15 +0300 Subject: [PATCH 3/4] homework-7 add super --- js-core/homeworks/homework-7/src/main.js | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/js-core/homeworks/homework-7/src/main.js b/js-core/homeworks/homework-7/src/main.js index f7d1301..4d22dc3 100644 --- a/js-core/homeworks/homework-7/src/main.js +++ b/js-core/homeworks/homework-7/src/main.js @@ -92,6 +92,11 @@ function methodCounter(obj, name, num, fn) { } return `ERROR ! add more methods` } + obj.addCounter = function(newNum, name){ + name = 'addCounter' + counter = newNum + return [counter, name] + } }; methodCounter(jun, 'logger', 2, function (args) { @@ -104,7 +109,12 @@ console.log(jun.logger(1, 2, 3, 4)); // 2, 10 console.log(jun.logger(5, 5, 5, 5)); // 1, 20 console.log(jun.logger(5, 5)); // ERROR ! add more methods -// jun.addCounter(10, methodName); +console.log(jun.addCounter(10, name)); +console.log(jun.logger(1, 2, 3, 4)); // 2, 10 +console.log(jun.logger(1, 2, 3, 4)); // 2, 10 +console.log(jun.logger(1, 2, 3, 4)); // 2, 10 +console.log(jun.logger(1, 2, 3, 4)); // 2, 10 + // @SUPER, /* From 4d214de0244ad1ed0264d580a15e2eff68d54231 Mon Sep 17 00:00:00 2001 From: baksha2008 Date: Fri, 22 Jun 2018 17:32:34 +0300 Subject: [PATCH 4/4] homework-7 add super fixed --- js-core/homeworks/homework-7/src/main.js | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/js-core/homeworks/homework-7/src/main.js b/js-core/homeworks/homework-7/src/main.js index 4d22dc3..d37e367 100644 --- a/js-core/homeworks/homework-7/src/main.js +++ b/js-core/homeworks/homework-7/src/main.js @@ -93,9 +93,9 @@ function methodCounter(obj, name, num, fn) { return `ERROR ! add more methods` } obj.addCounter = function(newNum, name){ - name = 'addCounter' - counter = newNum - return [counter, name] + // newName = name; + counter = newNum; + return [counter, name]; } }; @@ -109,11 +109,20 @@ console.log(jun.logger(1, 2, 3, 4)); // 2, 10 console.log(jun.logger(5, 5, 5, 5)); // 1, 20 console.log(jun.logger(5, 5)); // ERROR ! add more methods -console.log(jun.addCounter(10, name)); +console.log(jun.addCounter(10, 'addCounter')); console.log(jun.logger(1, 2, 3, 4)); // 2, 10 console.log(jun.logger(1, 2, 3, 4)); // 2, 10 console.log(jun.logger(1, 2, 3, 4)); // 2, 10 console.log(jun.logger(1, 2, 3, 4)); // 2, 10 +console.log(jun.logger(5, 5, 5, 5)); // 1, 20 +console.log(jun.logger(5, 5, 5, 5)); // 1, 20 +console.log(jun.logger(5, 5, 5, 5)); // 1, 20 +console.log(jun.logger(5, 5, 5, 5)); // 1, 20 +console.log(jun.logger(5, 5, 5, 5)); // 1, 20 +console.log(jun.logger(5, 5, 5, 5)); // 1, 20 +console.log(jun.logger(5, 5, 5, 5)); // 1, 20 +console.log(jun.logger(5, 5, 5, 5)); // 1, 20 +console.log(jun.logger(5, 5, 5, 5)); // 1, 20 // @SUPER,