Opcijski operator promjene nastavit će niz stazu dok ne dosegne vrijednost svojstva ili ne naiđe na pogrešku:
neka zaposlenik = {ime : 'Ivan' ,
prezime : 'srna' ,
Dob : 3. 4
} ;
konzola. log ( zaposlenik. adresa ? . zip ) ;
Da smo pokušali pristupiti istoj vrijednosti svojstva bez korištenja opcijskog operatora ulančavanja tada bismo dobili pogrešku:
neka zaposlenik = {
ime : 'Ivan' ,
prezime : 'srna' ,
Dob : 3. 4
} ;
konzola. log ( zaposlenik. adresa . zip ) ;
Izborno ulančavanje poziva metoda
Neobavezno ulančavanje također radi na pozivima metoda. Opcijsko ulančavanje možete koristiti kada niste sigurni postoji li metoda unutar objekta. Primjer upotrebe su podaci dohvaćeni iz API-ja koji mogu ili ne moraju sadržavati određene značajke ovisno o uređaju korisnika:
neka zaposlenik = {
ime : 'Ivan' ,
prezime : 'srna' ,
Dob : 3. 4
} ;
konzola. log ( zaposlenik. metoda ? . ( ) ) ;
Bez izbornog lančanog povezivanja:
neka zaposlenik = {
ime : 'Ivan' ,
prezime : 'srna' ,
Dob : 3. 4
} ;
konzola. log ( zaposlenik. metoda ( ) ) ;
Opcijski operator ulančavanja također se može koristiti više puta unutar jedne izjave kako bi se izbjegle pogreške.
Kombiniranje izbornog ulančavanja s operatorom spajanja Nullish
Opcijsko ulančavanje također se može upariti s ?? operator za pružanje zadane vrijednosti u slučaju da svojstvo ili metoda ne postoje:
neka zaposlenik = {ime : 'Ivan' ,
prezime : 'srna' ,
Dob : 3. 4
} ;
konzola. log ( zaposlenik. metoda ? . ( ) ?? 'Funkcija ne postoji' ) ;
Zadana vrijednost također može biti neki poziv funkcije.
Neobavezna prekomjerna upotreba ulančavanja
Opcijsko ulančavanje uvedeno je kako bi se povećala čitljivost i elegancija koda. Treba ga pažljivo koristiti jer može rezultirati utišavanjem pogrešaka. Pretjerana upotreba opcijskog operatora za ulančavanje može uzrokovati probleme u vašem kodu.
Zaključak
Neobavezno ulančavanje nedavno je dodana značajka JavaScripta koja se može koristiti za pristup svojstvima i metodama unutar duboko ugniježđenih JavaScript objekata bez brige o postavljanju ručnih provjera postojanja tih metoda i svojstava.