Показать сообщение отдельно
  #25 (permalink)  
Старый 08.04.2020, 00:53
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,709

Сообщение от 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! Ух ты! Так его же нет!
И получается, что массив ведет себя как голимый объектишко.
И когда нет элемента с индексом, он зачем то лезет в прототип. Прототип то объект - у него нет индексов, а только свойства с именами. А наш массив зачем то вместо индекса лезет за свойством по его имени.
Да просто индексы - это всего лишь имена (строковые) свойств.
Ответить с цитированием