|
@@ -75,7 +75,7 @@ alert(`Слушай, ${nameSaver()}, го пить пиво. Ведь prompt б
|
|
|
1 //пауза 1 секунда
|
|
|
"поехали!" */
|
|
|
|
|
|
-
|
|
|
+/*
|
|
|
let counter = 5;
|
|
|
function countdown() {
|
|
|
console.log(counter);
|
|
@@ -90,4 +90,43 @@ function countdown() {
|
|
|
} else clearInterval(int1);
|
|
|
};
|
|
|
|
|
|
-let int1 = setInterval(() => {countdown()}, 1000);
|
|
|
+let int1 = setInterval(() => {countdown()}, 1000); */
|
|
|
+
|
|
|
+//myBind
|
|
|
+
|
|
|
+/* let pow5 = myBind(Math.pow, Math, [undefined, 5]) // первый параметр - функция для биндинга значений по умолчанию,
|
|
|
+ // второй - this для этой функции, третий - массив, в котором undefined означает
|
|
|
+ // параметры, которые должны передаваться при вызове,
|
|
|
+ // а другие значения являются значениями по умолчанию:
|
|
|
+let cube = myBind(Math.pow, Math, [undefined, 3]) // cube возводит число в куб
|
|
|
+
|
|
|
+pow5(2) // => 32, вызывает Math.pow(2,5), соотнесите с [undefined, 5]
|
|
|
+cube(3) // => 27
|
|
|
+
|
|
|
+
|
|
|
+let chessMin = myBind(Math.min, Math, [undefined, 4, undefined, 5,undefined, 8,undefined, 9])
|
|
|
+chessMin(-1,-5,3,15) // вызывает Math.min(-1, 4, -5, 5, 3, 8, 15, 9), результат -5
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+let zeroPrompt = myBind(prompt, window, [undefined, "0"]) // аналогично, только теперь задается "0" как текст по умолчанию в prompt,
|
|
|
+ // а текст приглашения пользователя задается при вызове zeroPrompt
|
|
|
+let someNumber = zeroPrompt("Введите число") // вызывает prompt("Введите число","0")
|
|
|
+
|
|
|
+myBind((...params) => params.join(''), null, [undefined, 'b', undefined, undefined, 'e', 'f'])('a','c','d') === 'abcdef' */
|
|
|
+
|
|
|
+
|
|
|
+function myBind(func, funcThis, arr){
|
|
|
+ let bindArray = arr;
|
|
|
+ let funcRes = func.bind(funcThis, ...bindArray);
|
|
|
+ function retFunc(...params){
|
|
|
+ console.log(bindArray);
|
|
|
+ return funcRes(...params);
|
|
|
+ }
|
|
|
+ return retFunc;
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+console.log(myBind(Math.pow, Math, [undefined, 5]));
|
|
|
+console.log(myBind((...params) => params.join(''), null, [undefined, 'b', undefined, undefined, 'e', 'f'])('a','c','d'));
|
|
|
+
|