Здравствуйте!
Попалась тут вот такая задача, которую я не могу решить. Может быть, кто-то подскажет ответ, очень интересно, какой код нужно вставить вместо комментов #1 и #2:
const arr = [];
// #1 Здесь необходимо вставить код
console.log('before', arr); // before []
arr[undefined] = 1;
arr[undefined] = 2;
arr[undefined] = 3;
console.log('after', arr); // after (3)[1, 2, 3]
// #2 Здесь необходимо вставить код
Владислав Лысков, они все неудачные) но в целом идея была в том, что тут как-то замешан доступ к несуществующим свойствам. и то, что undefined !== 'undefined'
Неплохо, а есть ли способ который изменить дефолтное поведение присваивания нового свойства в объект? По аналогии с Iterator, поведение которого можно менять.
G F, хз, не знаю чтобы изменить поведение существующего объекта, скорее такое сделать невозможно. Но его можно обернуть в Proxy и делать присваивание через прокси