const arr = [Array(2), Array(2), Array(2), Array(2)];
const obj = Object.fromEntries(arr);
<head>
<meta http-equiv="refresh" content="10">
</head>
onmessage
в WebSocket и обновлять виджеты, не перегружая страницы, без нужды отправлять запрос каждые 10 сек. Пару лет назад начал изучать веб, вот казалось, всё идёт по маслу, изучил HTML, затем CSS, и естественно настала очередь JS. И вот тут уже начались трудности
В итоге я начал медленно прекращать изучать его, потому что в мою юношескую голову, после наступления трудности( да, я знаю что JS — не самый сложный язык ),
начали закладываться мысли, что после моего успешного выпуска, таких программистов как я, будет, мягко говоря, много
...
function delay(func, timeOut) {
// при вызове delay(func, timeOut) мы создаем анонимную функцию и возвращаем ее
// но при этом внутри нее мы обращаемся к переданному параметру func
// создавая тем самым замыкание на него
return function() {
// внутри возвращаемой анонимной функции мы запускаем таймер
// которому передаем параметр func являющейся функцией, определенной
// где то вовне этот таймер выполнит func но при этом внутри самой func
// уже будет не видны параметры переданные для анонимной функции.
// Внутри анонимной функции эти параметры можно получить через arguments.
// Тля того, чтобы func могла получить к ним доступ, мы используем apply,
// привязывая к func контент вызова анонимной функции и ее arguments
// тем самым создавая замыкания к this и arguments анонимной функции
setTimeout(func.apply(this, arguments), timeOut);
// как правильно подсказал @bingo347, эту строчку надо немного переписать
setTimeout(func.bind(this, ...arguments), timeOut);
}
}
// примерно того же эффекта можно было добиться следующим кодом
function delay(func, timeOut) {
return function(text) {
setTimeout(()=>func(text), timeOut);
}
}
// можно даже добиться не примерно такого, а точно такого же эффекта
// (за исключением привязки контекста анонимной функции через this
// который влияет лишь на возможность обратится непосредственно
// к методам и свойствам самой анонимной функции, которых в вашем
// примере не объявлено )))
function delay(func, timeOut) {
return function(...args) {
setTimeout(()=>func(...args), timeOut);
}
}
...
function f(argument1, argument2) {
alert(argument1 + " " + argument2);
}
let f1000 = delay(f, 1000);
f1000("1111", "2222"); // показывает "1111 2222" после 1000 мс
function f(argument1, argument2, argument3) {
alert(argument1 + " " + argument2 + " " + argument3);
}
let f1000 = delay(f, 1000);
f1000("1111", "2222", "3333"); // показывает "1111 2222 3333" после 1000 мс
function t3() {
return a3.map(function (item) {
return parseFloat(item);
}).filter(i => !isNaN(i))
}