JavaScript . разный результат обращения к свойству объекта через точку и квадратные скобки

В одном случаи всё правильно выводится, результаты свойств, когда пишу через квадратные скобки

const options = {
    name:'test',
    width:1024,
    height:1024,

     colors : {
        border:'black',
        bg:'red'

    }
};

for (let key in options){
    console.log(options[key]);
}
введите сюда описание изображения Но если поставить точку

for (let key in options){
console.log(options.key);

}

, то в результате вывода переменная не определенна , почему так происходит?

введите сюда описание изображения

const options = {
    name:'test',
    width:1024,
    height:1024,

     colors : {
        border:'black',
        bg:'red'

    }
};

for (let key in options){
    console.log(options.key);
}


Ответы (1 шт):

Автор решения: HTO HOT

Дело в том , что во время перебора через for in ключ получает строку. И когда вы пытаетесь получить данные через точку. JS это видит так options.'name' , а не так options.name.

const options = {
    name:'test',
    width:1024,
    height:1024,

     colors : {
        border:'black',
        bg:'red'

    }
};

for (let key in options){
    console.log(typeof key);
}

→ Ссылка