• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Wiele argumentów a poprawność parametrów JS

0 głosów
867 wizyt
pytanie zadane 28 października 2020 w JavaScript przez Wiciorny Ekspert (282,600 p.)

Hej, generalnie wiem na czym polega idea "wielu argumentów" z zastosowaniem ...
ale pojawia się moje pytanie, do tych co dłużej piszą w JS- ja specem nie jestem, czy formalnie ten zapis jest poprawny? 
 

  function pobierzParametry() {
        return {...miejscowoscOdleglosc.pobierzParametry(),...jakiejPomocySzukasz.pobierzParametry()};
    }

i tu się pojawia moje pytanie, czy ktoś może mi to głębiej wyjaśnić? tutaj  można manipulować parametrami jako funkcjami ? bo nie bardzo rozumiem sens drugiego parametru który również, przed sobą ma ... też rozumiem że to dzielenie na tym parametrów? A co jeśli funkcja zwraca tablice a np pojedyncza wartość jaka jest różnica? 
Dziękuje za wyjaśnienie, ewentualnie linki do doca. 

2 odpowiedzi

+2 głosów
odpowiedź 28 października 2020 przez adrian17 Mentor (354,880 p.)
edycja 28 października 2020 przez adrian17

Niezbyt rozumiem co do ma do "wiele argumentów" - tutaj w ogóle nie ma żadnych argumentów. To co pokazałeś, to zbudowanie obiektu z zawartości dwóch innych obiektów (zwróconych przez funkcje) z użyciem operatora '...'.

Czyli:

>>> x = {a: 1, b: 2}
>>> y = {c: 3, d: 4}
>>> {...x, ...y}
{a: 1, b: 2, c: 3, d: 4}

 

komentarz 28 października 2020 przez Wiciorny Ekspert (282,600 p.)

rozumiem że bez zastosowania ",,," otrzymalibyśmy 

{ {a: 1, b: 2}, {c: 3, d: 4} }

 

komentarz 28 października 2020 przez adrian17 Mentor (354,880 p.)
{ {a: 1, b: 2}, {c: 3, d: 4} }

Coś takiego w ogóle nie istnieje i nie ma sensu składniowego :/

może spróbuj?

>>> {x, y}
{x: {a: 1, b: 2}, y: {c: 3, d: 4}}

 

komentarz 28 października 2020 przez Wiciorny Ekspert (282,600 p.)
jak nie istnieje ? obiekt, w którym znajdują się dwa obiekty? Nie bedzie to tak działać? np. json
komentarz 28 października 2020 przez adrian17 Mentor (354,880 p.)

...nie, w JSONie też czegoś takiego

{ {a: 1, b: 2}, {c: 3, d: 4} }

nie ma. Obiekt ma klucze i wartości. Może pomyliłeś z tablicą?

+1 głos
odpowiedź 28 października 2020 przez ScriptyChris Mędrzec (190,190 p.)

To co pokazałeś korzysta ze spread operatora. Natomiast tak samo wyglądający operator (trzy kropki) w miejscu listy argumentów funkcji jest składnią rest parameters.

Spread operator służy do rozpakowania wartości z tablicy/obiektu.

Rest parameters powoduje spakowanie wszystkich pozostałych parametrów do jednego argumentu. Jest to poniekąd następca pseudo tablicy arguments.

W podlinkowanych dokumentacjach są przykłady - jeśli czegoś nie rozumiesz, to pytaj.

Podobne pytania

0 głosów
1 odpowiedź 747 wizyt
pytanie zadane 6 kwietnia 2018 w JavaScript przez JSJerry Początkujący (260 p.)
0 głosów
3 odpowiedzi 547 wizyt
pytanie zadane 11 października 2017 w JavaScript przez SzymonSmith Użytkownik (870 p.)
0 głosów
1 odpowiedź 1,153 wizyt
pytanie zadane 8 kwietnia 2018 w C i C++ przez giedymin33 Początkujący (290 p.)

93,630 zapytań

142,554 odpowiedzi

323,055 komentarzy

63,136 pasjonatów

Advent of Code 2025

Top 15 użytkowników

  1. 2174p. - dia-Chann
  2. 2153p. - DziarnowskiJ
  3. 2123p. - Łukasz Piwowar
  4. 2105p. - CC PL
  5. 2077p. - raydeal
  6. 2010p. - rucin93
  7. 1957p. - Maurycy W
  8. 1954p. - Adrian Wieprzkowicz
  9. 1887p. - Łukasz Eckert
  10. 1855p. - Michal Drewniak
  11. 1811p. - rafalszastok
  12. 1777p. - robwarsz
  13. 1588p. - Tomasz Bielak
  14. 1491p. - Rafał Trójniak
  15. 1377p. - ssynowiec
Szczegóły i pełne wyniki

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...