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 prototypuObject.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