Middle
Zašto se funkcije nizova smatraju objektima u JavaScriptu?
sobes.tech АИ
Одговор од АИ
U JavaScript-u, nizovi su poseban tip objekata.
Glavni razlozi:
- Nasleđivanje od
Object.prototype: Nizovi nasleđuju svojstva i metode od osnovnog prototipaObject.prototype. To im omogućava da imaju zajedničke metode, kao što sutoString(),hasOwnProperty()i druge karakteristične za objekte. - Svojstva: Nizovi imaju svojstva, kao i objekti. Najčešće je
length, koje pokazuje broj elemenata. Pristup elementima niza vrši se putem numeričkih ključeva, što je slično pristupu svojstvima objekta putem string ključeva, samo što su ključevi u ovom slučaju stringovi koji predstavljaju brojeve. - Ponašanje: Iako su specijalizovani (uređena kolekcija elemenata po numeričkim indeksima), ponašanje nizova u mnogim aspektima poklapa se sa ponašanjem običnih objekata. Na primer, njima se mogu dodavati proizvolja svojstva (iako to nije preporučljivo radi očuvanja čitljivosti).
// Niz kao specijalizovan objekat
let myArray = [1, 2, 3];
// Pristup svojstvu length
console.log(myArray.length); // Ispisaće 3
// Pristup elementu po indeksu (ključ "0")
console.log(myArray[0]); // Ispisaće 1
// Dodavanje proizvoljnog svojstva (ne standardno)
myArray.myProperty = "hello";
console.log(myArray.myProperty); // Ispisaće "hello"
// Provera da li svojstvo koje je nasledjeno od Object.prototype postoji
console.log(myArray.hasOwnProperty('length')); // Ispisaće true