Skip to content

Commit 4de6551

Browse files
authored
Merge pull request #8 from EasyCode-JavaScriptReact-v1/homework_7
homemade_7
2 parents e42efc9 + 4d214de commit 4de6551

File tree

2 files changed

+143
-0
lines changed

2 files changed

+143
-0
lines changed
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
<!DOCTYPE html>
2+
<html lang="ru">
3+
<head>
4+
<meta charset="UTF-8">
5+
<title>test page</title>
6+
</head>
7+
<body>
8+
<script src="src/main.js"></script>
9+
</body>
10+
</html>
Lines changed: 133 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,133 @@
1+
'use strict';
2+
3+
/*
4+
*
5+
* TASK 1
6+
*
7+
* Напишите функцию которая будет вызываться трижды и складывать
8+
* все передаваемые ей числа
9+
*
10+
* */
11+
12+
function add(x) {
13+
return function(a){
14+
return function(b){
15+
return x + a + b
16+
}
17+
}
18+
}
19+
20+
console.log(add(1)(2)(3)); // 6
21+
console.log(add(10)(5)(15)); // 30
22+
23+
// /*
24+
// *
25+
// * TASK 2
26+
// *
27+
// * Напишите функцию которая возвращает объект и одно из свойств объекта
28+
// * это функция
29+
// * После каждого нового вызова метода объекта(функции объекта) в консоле должно отображаться
30+
// * число на 1 больше чем предыдущее
31+
// * ---------------------------------------
32+
// * так же у объекта должен быть метод обнуления счетчика
33+
// * Узнать счетчик напрямую в объекте, нельзя
34+
// *
35+
// * */
36+
37+
function patternModule(num) {
38+
let counter = 0;
39+
let obj = {
40+
method: function(){
41+
++counter
42+
return counter
43+
},
44+
method2: function(){
45+
counter = 0
46+
return counter
47+
}
48+
}
49+
return obj;
50+
51+
}
52+
53+
// patternModule
54+
55+
let test = patternModule(); // 0
56+
console.log(test.method()); //1
57+
console.log(test.method()); //2
58+
console.log(test.method()); //3
59+
console.log(test.method()); //4
60+
console.log(test.method()); //5
61+
console.log(test.method()); //6
62+
console.log(test.method2()); //0
63+
console.log(test.method()); //1
64+
console.log(test.method()); //2
65+
console.log(test.method()); //3
66+
console.log(test.method2()); //0
67+
68+
69+
// /*
70+
// * TASK 1
71+
// *
72+
// * Напишите функцию которая принимает 4 аргумента:
73+
// *
74+
// * - Объект
75+
// * - Имя свойства с которым связывается метод
76+
// * - Сколько раз можно вызвать метод *
77+
// * - Объявление привязываемого метода ( функция )
78+
// *
79+
// * При вызове метода отобразите сумму передаваемых
80+
// * параметров.
81+
// * Когда заканчивается счетчик, отображается ошибка
82+
// *
83+
// * */
84+
85+
let jun = {};
86+
87+
function methodCounter(obj, name, num, fn) {
88+
let counter = num;
89+
obj[name] = function(...args){
90+
if(counter>0){
91+
return [counter--, fn(args)]
92+
}
93+
return `ERROR ! add more methods`
94+
}
95+
obj.addCounter = function(newNum, name){
96+
// newName = name;
97+
counter = newNum;
98+
return [counter, name];
99+
}
100+
};
101+
102+
methodCounter(jun, 'logger', 2, function (args) {
103+
let sumArgs = args.reduce(function(newValue,elem){
104+
return newValue + elem
105+
}, 0);
106+
return sumArgs;
107+
});
108+
console.log(jun.logger(1, 2, 3, 4)); // 2, 10
109+
console.log(jun.logger(5, 5, 5, 5)); // 1, 20
110+
console.log(jun.logger(5, 5)); // ERROR ! add more methods
111+
112+
console.log(jun.addCounter(10, 'addCounter'));
113+
console.log(jun.logger(1, 2, 3, 4)); // 2, 10
114+
console.log(jun.logger(1, 2, 3, 4)); // 2, 10
115+
console.log(jun.logger(1, 2, 3, 4)); // 2, 10
116+
console.log(jun.logger(1, 2, 3, 4)); // 2, 10
117+
console.log(jun.logger(5, 5, 5, 5)); // 1, 20
118+
console.log(jun.logger(5, 5, 5, 5)); // 1, 20
119+
console.log(jun.logger(5, 5, 5, 5)); // 1, 20
120+
console.log(jun.logger(5, 5, 5, 5)); // 1, 20
121+
console.log(jun.logger(5, 5, 5, 5)); // 1, 20
122+
console.log(jun.logger(5, 5, 5, 5)); // 1, 20
123+
console.log(jun.logger(5, 5, 5, 5)); // 1, 20
124+
console.log(jun.logger(5, 5, 5, 5)); // 1, 20
125+
console.log(jun.logger(5, 5, 5, 5)); // 1, 20
126+
127+
// @SUPER,
128+
129+
/*
130+
* Добавьте функции methodCounter, возможность увеличивать счетчик
131+
* на заданное число
132+
*
133+
* */

0 commit comments

Comments
 (0)