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 prototipoObject.prototype. Tai leidžia jiems turėti bendrus metodus, tokius kaiptoString(),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