Middle
Proč jsou funkce polí v JavaScriptu považovány za objekty?
sobes.tech AI
Odpověď od AI
V JavaScriptu jsou pole speciálním typem objektů.
Hlavní důvody:
- Dědičnost od
Object.prototype: Pole dědí vlastnosti a metody od základního prototypuObject.prototype. To jim umožňuje mít společné metody, jako jsoutoString(),hasOwnProperty()a další, které jsou typické pro objekty. - Vlastnosti: Pole mají vlastnosti, stejně jako objekty. Nejčastější je
length, která ukazuje počet prvků. Přístup k prvkům pole se provádí přes číselné klíče, což je podobné přístupu k vlastnostem objektu přes řetězcové klíče, pouze zde jsou klíče řetězcové reprezentace čísel. - Chování: Přestože jsou specializovaná (uspořádaná kolekce prvků podle číselných indexů), chování polí v mnoha ohledech odpovídá chování běžných objektů. Například k nim lze přidávat libovolné vlastnosti (ačkoliv to není doporučeno pro zachování čitelnosti).
// Pole jako specializovaný objekt
let myArray = [1, 2, 3];
// Přístup k vlastnosti length
console.log(myArray.length); // Vypíše 3
// Přístup k prvku podle indexu (klíč "0")
console.log(myArray[0]); // Vypíše 1
// Přidání libovolné vlastnosti (neobvyklé)
myArray.myProperty = "hello";
console.log(myArray.myProperty); // Vypíše "hello"
// Kontrola existence vlastnosti zděděné z Object.prototype
console.log(myArray.hasOwnProperty('length')); // Vypíše true