Sobes.tech
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 prototypu Object.prototype. To jim umožňuje mít společné metody, jako jsou toString(), 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