Izbirni operater spreminjanja bo nadaljeval po poti, dokler ne doseže vrednosti lastnosti ali naleti na napako:
naj zaposleni = {ime : 'Janez' ,
priimek : 'srna' ,
Starost : 3. 4
} ;
konzola. dnevnik ( zaposleni. naslov ? . zip ) ;
Če bi poskušali dostopati do iste vrednosti lastnosti brez uporabe izbirnega operatorja veriženja, bi prejeli napako:
naj delavec = {
ime : 'Janez' ,
priimek : 'srna' ,
Starost : 3. 4
} ;
konzola. dnevnik ( zaposleni. naslov . zip ) ;
Izbirno veriženje klicev metod
Izbirno veriženje deluje tudi pri klicih metod. Izbirno veriženje lahko uporabite, ko niste prepričani, ali metoda obstaja v objektu. Primer uporabe so podatki, pridobljeni iz API-ja, ki lahko vsebuje ali ne vsebuje določene funkcije, odvisno od uporabnikove naprave:
naj zaposleni = {
ime : 'Janez' ,
priimek : 'srna' ,
Starost : 3. 4
} ;
konzola. dnevnik ( zaposleni. metoda ? . ( ) ) ;
Brez neobveznega veriženja:
naj zaposleni = {
ime : 'Janez' ,
priimek : 'srna' ,
Starost : 3. 4
} ;
konzola. dnevnik ( zaposleni. metoda ( ) ) ;
Izbirni operator veriženja lahko uporabite tudi večkrat v enem stavku, da se izognete napakam.
Kombinacija neobveznega veriženja z operatorjem združevanja Nullish
Izbirno veriženje je mogoče združiti tudi z ?? operator za zagotavljanje privzete vrednosti v primeru, da lastnost ali metoda ne obstaja:
naj zaposleni = {ime : 'Janez' ,
priimek : 'srna' ,
Starost : 3. 4
} ;
konzola. dnevnik ( zaposleni. metoda ? . ( ) ?? 'Funkcija ne obstaja' ) ;
Privzeta vrednost je lahko tudi klic neke funkcije.
Prekomerna uporaba neobveznega veriženja
Izbirno veriženje je bilo uvedeno za povečanje berljivosti in elegance kode. Uporabljati ga je treba previdno, saj lahko povzroči utišanje napak. Prekomerna uporaba izbirnega operatorja veriženja lahko povzroči težave v vaši kodi.
Zaključek
Izbirno veriženje je nedavno dodana funkcija JavaScripta, ki jo je mogoče uporabiti za dostop do lastnosti in metod znotraj globoko ugnezdenih objektov JavaScript, ne da bi vam bilo treba skrbeti za ročno preverjanje obstoja teh metod in lastnosti.