Sobes.tech
Junior

Ismeri a 'in' operátort a JavaScript-ben? Milyen hátrányai vannak?

sobes.tech MI

Válasz az MI-től

A JavaScript-ben az in operátor arra szolgál, hogy ellenőrizze, létezik-e egy tulajdonság egy objektumban vagy annak prototípus láncában. Például:

const obj = { a: 1 };
console.log('a' in obj); // true
console.log('toString' in obj); // true, mert a toString a prototípusban van

Az in operátor hátrányai:

  • Nemcsak az objektum saját tulajdonságait ellenőrzi, hanem az örökölt tulajdonságokat is a prototípuson keresztül, ami hamis pozitív eredményekhez vezethet.
  • Nem különbözteti meg, hogy a tulajdonság enumerálható-e vagy sem.

Ha csak az objektum saját tulajdonságait szeretnéd ellenőrizni, akkor jobb a hasOwnProperty metódust használni:

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

Így az in hasznos általános tulajdonságkereséshez, de óvatosságot igényel, ha a tulajdonság tulajdonjogáról van szó.