Como as matrizes javascript são implementadas?
Ou seja, como é que o seguinte código:
var sup = new Array(5);
sup[0] = 'z3ero';
sup[1] = 'o3ne';
sup[4] = 'f3our';
document.write(sup.length + "<br />");
saída '5' para o comprimento, quando tudo o que você fez é definir vários elementos?
Meu 'problema' com este código é que eu não entendo comolength
muda sem chamar umgetLength()
ou umsetLength()
método. Quando eu faço um dos seguintes:
a.length
a['length']
a.length = 4
a['length'] = 5
em um objeto sem matriz, ele se comporta como uma matriz dict / associativa. Quando faço isso no objeto array, ele tem um significado especial. Que mecanismo em JavaScript permite que isso aconteça? O javascript possui algum tipo de sistema de propriedade que traduz
a.length
a['length']
em métodos "get" e
a.length = 4
a['length'] = 5
em métodos "set"?