Sobes.tech
Middle

Prečo sa funkcie polí v JavaScripte považujú za objekty?

sobes.tech AI

Odpoveď od AI

V JavaScripte sú polia špeciálnym typom objektov.

Hlavné dôvody:

  • Dedičstvo od Object.prototype: Polia dedičia vlastnosti a metódy od základného prototypu Object.prototype. To im umožňuje mať spoločné metódy, ako sú toString(), hasOwnProperty() a ďalšie, charakteristické pre objekty.
  • Vlastnosti: Polia majú vlastnosti, rovnako ako objekty. Najbežnejšou je length, ktorá ukazuje počet prvkov. Prístup k prvkom poľa sa vykonáva cez číselné kľúče, čo je podobné prístupu k vlastnostiam objektu cez reťazcové kľúče, lenže v tomto prípade sú kľúče reťazcové reprezentácie čísel.
  • Správanie: Napriek svojej špecializácii (usporiadaná kolekcia prvkov podľa číselných indexov), správanie polí v mnohých aspektoch zodpovedá správaniu bežných objektov. Napríklad, k nim možno pridávať ľubovoľné vlastnosti (hoci to nie je odporúčané pre zachovanie čitateľnosti).
// Pole ako špecializovaný objekt
let myArray = [1, 2, 3];

// Prístup k vlastnosti length
console.log(myArray.length); // Vypíše 3

// Prístup k prvku podľa indexu (kľúč "0")
console.log(myArray[0]); // Vypíše 1

// Pridanie ľubovoľnej vlastnosti (neštandardné)
myArray.myProperty = "hello";
console.log(myArray.myProperty); // Vypíše "hello"

// Kontrola, či vlastnosť zdedená z Object.prototype existuje
console.log(myArray.hasOwnProperty('length')); // Vypíše true