Associativity operatora ()

Associativity operatora ()
adams0
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 333
0

Cześć.

Zauważyłem coś w dokumentacji Mozilli co nie wydaję mi się prawdą lub co bardziej prawdopodobne:
Czegoś nie rozumiem.
Na stronie https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Operator_Precedence
w tabeli Precedence operator Function Call ma associativity: n/a
Ale przecież mogę zrobić tak:

Kopiuj
 function a(x) {
    return function b(y) {
        console.log(x+y)
    }
}

a('a')('b')

Gdzie widać że robi się od lewej do prawej.

Czy ktoś wie dla czego tam może być n/a?

KamilAdam
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Silesia/Marki
  • Postów: 5549
7

z tego co patrzę na tą tabelnę to Associativity dotyczy operatorów jak masz operand po prawej i po lewej stronie operatora. Tu nie masz operandu po prawej stronie operatora. W rezultacie tylko jedna kolejność wykonywania jest możliwa

Riddle
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 10227
0
KamilAdam napisał(a):

z tego co patrzę na tą tabelnę to Associativity dotyczy operatorów jak masz operand po prawej i po lewej stronie operatora. Tu nie masz operandu po prawej stronie operatora. W rezultacie tylko jedna kolejność wykonywania jest możliwa

No nie koniecznie. Funkcja po lewej, argument po prawej.

Kopiuj
const func = console.log;
const arg = a+B;

func(arg);

Czy coś pomieszałem?

stivens
  • Rejestracja: dni
  • Ostatnio: dni
1

Musialoby byc func () arg () arg0

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.