передать сюда аргументыЭто вы уже умеете, тут ничего сложого. Вызов функции с аргументами - это азбука программирования.
получить их в addCommentFnВы уже передаёте туда один аргумент
reset_timeComment
.const throttle = (func, ms) =>{
return function(additionalArgs){
...
func.apply(this, [() => {
clearInterval(timer);
localStorage.setItem('time_comment-last', 0);
recalls__columnReminder.removeClass('visible');
}, additionalArgs]);
...
}
function addCommentFn(reset_timeComment, additionalArgs) {
console.log(additionalArgs.arg1);
}
startThrottle({arg1: 42, arg2: 'foo'});
const throttle = (func, ms) =>{
return function(...additionalArgs){
...
func.apply(this, [
() => {
clearInterval(timer);
localStorage.setItem('time_comment-last', 0);
recalls__columnReminder.removeClass('visible');
},
...additionalArgs
]);
...
}
function addCommentFn(reset_timeComment, arg1, arg2) {
console.log(arg2);
}
startThrottle(42, 'foo'});
<span>
). Затем к этому тегу можно применить соответствующие правила CSS, либо напрямую в атрибут style
, либо через отдельную таблицу стилей.innerText
уже будет нельзя. Сейчас добавляет всем элементам сразу, а как сделать как появился элемент сразу добавился классЭта формулировка, возможно, понятна вам, но совершенно непонятна за пределами вашей головы.
function (entry) {
entry.target.classList.add("animate__animated animate__fadeInLeft ");
}
[...document.querySelectorAll('.element')].forEach(function (el) {
const observer = new IntersectionObserver(function (entries) {
entries.forEach(function (entry) {
entry.target.classList.add("animate__animated animate__fadeInLeft ");
});
});
observer.observe(el);
});
a[e]
) и если есть, инкрементируем значение (a[e] + 1
), а если нет, то используем единицу. Полученное значение записываем в объект a[e] =
.почему в условии мы делаем присваиваниеПотому что метод reduce предназначен для "сборки" какого-то одного значения и эта сборка без присваивания невозможна.
Как в конечный массив записывается значениеЧерез присваивание выше и возврат объекта (а не массива) из функции.
не уходит в catch фетчаВы ошибаетесь, уходит.
не передается дальше в catch промисаПотому что вы её уже обработали в первом catch. Если зачем-то хотите, чтобы она ушла дальше по цепочке catch, её надо бросить заново.
const url = 'https://jsonplaceholder.typicode.co'
const getUser = async () => {
return new Promise((resolve, reject) => {
fetch(url).then(data => resolve(data)).catch(err => reject(err))
}).catch(err => err.message)
}
const url = 'https://jsonplaceholder.typicode.co'
const getUser = async () => fetch(url).catch(err => err.message)
.json()
или .text()
. new Rabbit("Белый кролик")
Rabbit extends Animal
class Animal {
constructor(name) {
this.name = name;
}
}
function prepare(){
const results = [];
for(let i = 0; i <= sections.length-1; i++){
const result = createFile(`src/parts/_${sections[i]}.html`, `
<div class="${sections[i]}">
<div class="${sections[i]}__content ${sections[i]}__container"></div>
</div>\n`,
function (err) {
// file either already exists or is now created (including non existing directories)
});
results.push(result); // Если функция выше ушла в ошибку, нужно это обработать отдельно
}
return results;
}
function calls(func, ms) {
let call = true;
return function (x) {
if (call) {
call = false;
setTimeout(() => { call = true }, ms);
return func.apply(this, arguments);
}
}
}
js не воспринимает before как часть класса toggleНе совсем так - как часть toggle псевдоэлемент как раз воспринимается, но в функции скрытия вы проверяете на то, что элемент является ребёнком toggle и вот для псведоэлементов это не так. Собственно, у js нет доступа к псевдоэлементам и их он воспринимает как сам основной элемент.
if (!$(e.target).parents().hasClass("toggle") && !$(e.target).hasClass("toggle") && $(e.target).parents(".nav-items").length === 0)