Sobes.tech
Middle

Kodėl masyvų funkcijos JavaScript'e laikomos objektais?

sobes.tech AI

Atsakymas iš AI

JavaScript'e masyvai yra specialus objektų tipas.

Pagrindinės priežastys:

  • Paveldėjimas iš Object.prototype: Masyvai paveldi savybes ir metodus iš pagrindinio prototipo Object.prototype. Tai leidžia jiems turėti bendrus metodus, tokius kaip toString(), hasOwnProperty() ir kitus, būdingus objektams.
  • Savybės: Masyvai turi savybių, kaip ir objektai. Dažniausia yra length, rodanti elementų skaičių. Prieiga prie masyvo elementų vyksta per skaitinius raktus, panašiai kaip prieiga prie objektų savybių per eilutinius raktus, tik šiuo atveju raktai yra skaitmeninių reikšmių tekstinės reprezentacijos.
  • Elgsena: Nors jie yra specializuoti (rikiuota kolekcija pagal skaitinius indeksus), masyvų elgsena daugeliu aspektų sutampa su įprastų objektų elgsena. Pavyzdžiui, jiems galima pridėti bet kokias savybes (nors tai nerekomenduojama, siekiant išlaikyti skaitomumą).
// Masyvas kaip specializuotas objektas
let myArray = [1, 2, 3];

// Prieiga prie savybės length
console.log(myArray.length); // Išves 3

// Prieiga prie elemento pagal indeksą ("0" raktas)
console.log(myArray[0]); // Išves 1

// Pridėti bet kokią savybę (ne standartinę)
myArray.myProperty = "hello";
console.log(myArray.myProperty); // Išves "hello"

// Patikrinti, ar yra paveldėta savybė iš Object.prototype
console.log(myArray.hasOwnProperty('length')); // Išves true