Skip to content

Commit 7290acf

Browse files
homemade_7
1 parent fc8fbdc commit 7290acf

File tree

2 files changed

+121
-0
lines changed

2 files changed

+121
-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: 111 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,111 @@
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+
// return ++counter
42+
// },
43+
// method2: function(){
44+
// return counter = 0
45+
// }
46+
// }
47+
// return obj;
48+
49+
// }
50+
51+
// // patternModule
52+
53+
// let test = patternModule(); // 0
54+
// console.log(test.method()); //1
55+
// console.log(test.method()); //2
56+
// console.log(test.method()); //3
57+
// console.log(test.method()); //4
58+
// console.log(test.method()); //5
59+
// console.log(test.method()); //6
60+
// console.log(test.method2()); //0
61+
// console.log(test.method()); //1
62+
// console.log(test.method()); //2
63+
// console.log(test.method()); //3
64+
// console.log(test.method2()); //0
65+
66+
67+
// /*
68+
// * TASK 1
69+
// *
70+
// * Напишите функцию которая принимает 4 аргумента:
71+
// *
72+
// * - Объект
73+
// * - Имя свойства с которым связывается метод
74+
// * - Сколько раз можно вызвать метод *
75+
// * - Объявление привязываемого метода ( функция )
76+
// *
77+
// * При вызове метода отобразите сумму передаваемых
78+
// * параметров.
79+
// * Когда заканчивается счетчик, отображается ошибка
80+
// *
81+
// * */
82+
83+
let jun = {};
84+
85+
function methodCounter(obj, name, num, fn) {
86+
obj[name] = function(...args){
87+
if(num>0){
88+
return [num--, fn(args)]
89+
}
90+
return `ERROR ! add more methods`
91+
}
92+
};
93+
94+
methodCounter(jun, 'logger', 2, function (args) {
95+
let sumArgs = args.reduce(function(newValue,elem){
96+
return newValue + elem
97+
}, 0);
98+
return sumArgs;
99+
});
100+
console.log(jun.logger(1, 2, 3, 4)); // 2, 10
101+
console.log(jun.logger(5, 5, 5, 5)); // 1, 20
102+
console.log(jun.logger(5, 5)); // ERROR ! add more methods
103+
104+
// jun.addCounter(10, methodName);
105+
// @SUPER,
106+
107+
/*
108+
* Добавьте функции methodCounter, возможность увеличивать счетчик
109+
* на заданное число
110+
*
111+
* */

0 commit comments

Comments
 (0)