Co robi ta składnia jsa?

0
binding.modifiers['delayed']

Czy to po prostu sprawdza czy w tablicy modifiers istnieja takie coś jak delayed?

3

Zwraca propertasa o nazwie delayed z obiektu modifiers

0
const binding = { modifiers: { delayed: true } };
console.log(binding.modifiers['delayed'])

zwraca na output:
true

1
konewka85 napisał(a):
binding.modifiers['delayed']

Czy to po prostu sprawdza czy w tablicy modifiers istnieja takie coś jak delayed?

Składnia nic nie robi. Semantyka robi.

1

Fragment

binding.modifiers['delayed']

nie robi w zasadzie nic, tak w praktyce, dopóki nie poda się, czym jest obiekt binding, właściwość modifiers oraz wartość delayed w szerszym kontekście – na przykład w kontekście całego skryptu.

Natomiast od strony czysto semantycznej to wyrażenie zachowuje się tak (piszę z głowy, nie testowałem):

  • jeśli obiekt bidning ma wartość inną niż undefined oraz null, to:
    • jeśli słownik modifiers nie ma klucza delayed, to zwraca undefined;
    • jeśli słownik modifiers ma klucz delayed, to zwraca wartość, jaka jest do niego przypisana;
  • jeśli obiekt binding jest undefined lub null, to silnik JS wyrzuca wyjątek.

W specyficznych zastosowaniach ten kod może działać inaczej niż wyżej napisałem – np. promises, lub gdy jest w bloku try-catch – ale tego już nie wiem z głowy.*


PS. * Nie wiem z głowy oraz bez kontekstu.

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