Argumenty Funkcja

0

Cześć, mam problem chce wywołać 2 razy tą samą funkcję, ma ona tworzyć divy w zależności od wartości parametru x. Czy jest jakaś możliwość podania argumentu do tej funkcji bez wywoływania jej ?
const pokaz = (x) =>{

for(let i=0;i<x;i++){
const door = document.createElement("div");

const pojemnik = document.querySelector("div");
pojemnik.appendChild(door);
door.classList.toggle("drzwi");

}

}

guzik.addEventListener("click",pokaz);
guzik1.addEventListener("click",pokaz);

2

To się nazywa 'currying' ( nie wiem jak to na polski poprawnie przetłumaczyć :D )
W twoim przypadku powinno wyglądać to tak

const pokaz = (x) => () => {
}

guzik.addEventListener("click", pokaz);
guzik1.addEventListener("click", pokaz);

Więcej możesz się dowiedzieć https://blog.bitsrc.io/understanding-currying-in-javascript-ceb2188c339

PS, proponuję zacząć pisać kod w języku angielskim na pewno się w przyszłości przyda :)

0

Może coś takiego:

guzik.addEventListener("click", () => {pokaz(2);});
guzik1.addEventListener("click", () => {pokaz(15);});

0

Można stworzyć closure.

let fn = (value) => {
   return (value2) => {
      // wartosc value jest zawsze 4 (chyba ze nadpiszesz ja w tej funkcji)
      // wartosc value2 to w naszym przypadku kolejno 10 i 20 - te wartości są niezależne od siebie. ale prawdopodobnie tobie nie potrzeba value2 lecz tylko value1
      console.log(value, value2);
   }
}

let myFunction = fn(4);
myFunction(10)
myFunction(20)

1 użytkowników online, w tym zalogowanych: 0, gości: 1