@dmitriyivvvv

For in и одинаковые имена свойств?

Доброй ночи. Столкнулся с таким поведением цикла for in:
var o = {a: 1, b: 2};
var obj = {a: 666, b: 777, c: 3, d: 4};
Object.setPrototypeOf(o, obj);
for (let k in o) {
  console.log(k, o[k]);
}
// a 1
// b 2
// c 3
// d 4

Где a: 666 и b: 777?
Т.е происходит затенение и он не перебирает свойства с такими же именами?
  • Вопрос задан
  • 110 просмотров
Решения вопроса 2
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
У o есть свои свойства a и b. А c и d берутся из установленного прототипа.
Ответ написан
@0ffff0
пьющая серость
Если верить консоли, For in не виноват, это setPrototypeOf не захотел дублировать имена, так уж он устроен, наверное, чтоб For in потом не мучился, и перебирал только уникальные ключи
5c2322295772a968166889.png
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
от 30 000 до 65 000 руб.
BSSL Москва
от 50 000 до 150 000 руб.
от 60 000 до 90 000 руб.
23 июл. 2019, в 23:31
9000 руб./за проект
23 июл. 2019, в 22:14
18000 руб./за проект
23 июл. 2019, в 20:31
500 руб./за проект