@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?
Т.е происходит затенение и он не перебирает свойства с такими же именами?
  • Вопрос задан
  • 116 просмотров
Решения вопроса 2
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
У o есть свои свойства a и b. А c и d берутся из установленного прототипа.
Ответ написан
Комментировать
@0ffff0
Если верить консоли, For in не виноват, это setPrototypeOf не захотел дублировать имена, так уж он устроен, наверное, чтоб For in потом не мучился, и перебирал только уникальные ключи
5c2322295772a968166889.png
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы