5. Czym jest funkcja call?

call wywołany na funkcji pozwala przekazać do niej obiekt, który będzie używany jako this. Ładuje do funkcji jej kontekst.

call różni się od bind tym, że funkcja jest od razu wywoływana z parametrami przekazanymi jako drugi i następne argumenty do call. Zostaną przekazane do funkcji call w tej samej kolejności

const person = { firstName: 'Mario', print: function(arg1, arg2) { console.log(`I'm ${this?.firstName} and this is an arg1: ${arg1} and arg2: ${arg2}`); } }; person.print() // I'm Mario and this is an arg1: undefined and arg2: undefined const printFunction = person.print; printFunction(); // I'm undefined and this is an arg1: undefined and arg2: undefined printFunction.call(person); // I'm Mario and this is an arg1: undefined and arg2: undefined printFunction.call(person, "arg1", "arg2"); // I'm Mario and this is an arg1: arg1 and arg2: arg2

call różni się od apply tym, że przekazuje do funkcji swoje argumenty oddzielone przecinkami w tej samej kolejności, podczas gdy apply otrzymuje je jako lista i przekazuje je do funkcji w tej samej kolejności

printFunction.call(person, "arg1", "arg2"); // I'm Mario and this is an arg1: arg1 and arg2: arg2 printFunction.apply(person, ["arg1", "arg2"]); // I'm Mario and this is an arg1: arg1 and arg2: arg2
devFlipCards 2024

Akceptujesz cookies?

Cookies to niewielkie fragmenty danych zapisywane lokalnie na twoim urządzeniu. Pomagają w funkcjonowaniu naszej strony - zapisują Twoje ustawienia strony takie jak motyw czy język. Poprawiają funkcjonowanie reklam i pozwalają nam na przeprowadzanie analityki odwiedzin strony. Korzystając ze strony zgadasz się na ich wykorzystanie.