Сообщение от laimas
|
Экзотика, не экзотика, но индекс определен, это ни какое-то эфемерное понятие. )
|
А какое? Чем оно отличается от имени свойства?
Ну в С или каком другом языке это можно понять как номер элемента в последовательности, расположенной в памяти.
А если так
let a = [];
a[0]=0; a[1]=1; a[3]=3;
console.log(a[2]); // undefined ну нет элемента, так чего с него взять.
А если так
Array.prototype['2']=2;
let a = [];
a[0]=0; a[1]=1; a[3]=3;
console.log(a[2]); // 2! Ух ты! Так его же нет!
И получается, что массив ведет себя как голимый объектишко.
И когда нет элемента с индексом, он зачем то лезет в прототип. Прототип то объект - у него нет индексов, а только свойства с именами. А наш массив зачем то вместо индекса лезет за свойством по его имени.
Да просто индексы - это всего лишь имена (строковые) свойств.