Sobes.tech
Middle

Por que as funções de arrays são consideradas objetos em JavaScript?

sobes.tech IA

Resposta da IA

Em JavaScript, os arrays são um tipo especial de objetos.

Razões principais:

  • Herança de Object.prototype: Os arrays herdam propriedades e métodos do protótipo base Object.prototype. Isso permite que tenham métodos comuns, como toString(), hasOwnProperty() e outros característicos de objetos.
  • Propriedades: Os arrays têm propriedades, assim como os objetos. A mais comum é length, que indica a quantidade de elementos. O acesso aos elementos do array é feito através de chaves numéricas, semelhante ao acesso às propriedades de um objeto por chaves de string, apenas que neste caso as chaves são strings que representam números.
  • Comportamento: Apesar de sua especialização (coleção ordenada de elementos por índices numéricos), o comportamento dos arrays em muitos aspetos coincide com o comportamento de objetos normais. Por exemplo, podem-se adicionar propriedades arbitrárias (embora não seja recomendado para manter a legibilidade).
// Array como objeto especializado
let myArray = [1, 2, 3];

// Acesso à propriedade length
console.log(myArray.length); // Mostrará 3

// Acesso a um elemento por índice (chave "0")
console.log(myArray[0]); // Mostrará 1

// Adição de uma propriedade arbitrária (não padrão)
myArray.myProperty = "hello";
console.log(myArray.myProperty); // Mostrará "hello"

// Verificação da existência de uma propriedade herdada de Object.prototype
console.log(myArray.hasOwnProperty('length')); // Mostrará true