Sobes.tech
Middle

Dlaczego funkcje tablic są traktowane jako obiekty w JavaScript?

sobes.tech AI

Odpowiedź od AI

W JavaScript tablice są specjalnym typem obiektów.

Główne powody:

  • Dziedziczenie z Object.prototype: Tablice dziedziczą właściwości i metody z prototypu bazowego Object.prototype. Pozwala im to mieć wspólne metody, takie jak toString(), hasOwnProperty() i inne charakterystyczne dla obiektów.
  • Właściwości: Tablice mają właściwości, podobnie jak obiekty. Najczęściej używaną jest length, pokazująca liczbę elementów. Dostęp do elementów tablicy odbywa się przez klucze numeryczne, co przypomina dostęp do właściwości obiektu po kluczach tekstowych, tylko że w tym przypadku klucze są tekstowym przedstawieniem liczb.
  • Zachowanie: Pomimo swojej specjalizacji (uporządkowana kolekcja elementów według indeksów numerycznych), zachowanie tablic w wielu aspektach pokrywa się z zachowaniem zwykłych obiektów. Na przykład, można do nich dodawać dowolne właściwości (chociaż nie jest to zalecane dla zachowania czytelności).
// Tablica jako specjalistyczny obiekt
let myArray = [1, 2, 3];

// Dostęp do właściwości length
console.log(myArray.length); // Wyświetli 3

// Dostęp do elementu po indeksie (klucz "0")
console.log(myArray[0]); // Wyświetli 1

// Dodanie dowolnej właściwości (niestandardowe)
myArray.myProperty = "hello";
console.log(myArray.myProperty); // Wyświetli "hello"

// Sprawdzenie, czy właściwość dziedziczona z Object.prototype istnieje
console.log(myArray.hasOwnProperty('length')); // Wyświetli true