Sobes.tech
Junior

Ar žinote 'in' operatorių JavaScript'e? Kokios yra jo trūkumai?

sobes.tech AI

Atsakymas iš AI

„in“ operatorius JavaScript'e naudojamas patikrinti, ar savybė egzistuoja objekte arba jo prototipų grandinėje. Pavyzdžiui:

const obj = { a: 1 };
console.log('a' in obj); // true
console.log('toString' in obj); // true, nes toString yra prototipe

„in“ operatoriaus trūkumai:

  • Patikrina ne tik objekto savo savybes, bet ir paveldėtas per prototipą, kas gali sukelti klaidingus teigiamus rezultatus.
  • Neatskiria, ar savybė yra enumeruojama, ar ne.

Jei norite patikrinti tik objekto savo savybes, geriau naudoti metodą hasOwnProperty:

console.log(obj.hasOwnProperty('a')); // true
console.log(obj.hasOwnProperty('toString')); // false

Taigi, in yra naudingas bendram savybių paieškai, bet reikalauja atsargumo, jei svarbu, ar savybė priklauso pačiam objektui.