«Это история девушки, которая проплакала реку и утопила весь мир! И хотя на фотографиях она выглядит такой грустной, я просто обожаю ее, когда она улыбается!»

— Абсолютно от Nine Days

Просто дружеское напоминание улыбаться!

Точки и скобки. Они выглядят совершенно по-другому, но так ли это? Не совсем! И точки, и скобки используются для доступа к свойствам объектов JavaScript. Во многих случаях object.property и object["property"] взаимозаменяемы.

Пример

var ben= {favoriteFood: “Spinach”, favoriteAnimal: “Owl”}
ben.favoriteFood === ben[“favoriteFood”]; //returns true

Вы можете представить, что точка волшебным образом превращается в полный синтаксис квадратных скобок ([“ ”]), окружающих вашу собственность. Это сокращенное обозначение в квадратных скобках.

Итак… если они одинаковы, почему существуют оба?

Хороший вопрос! Точки — это легко и просто. Я люблю использовать их всякий раз, когда я могу! Но иногда вы будете использовать переменную для доступа к свойствам. Это не слишком хорошо работает с точечной нотацией.

*В следующем примере будет использоваться цикл for…in. Если вашей реакцией на это было: «Какая петля?» вот синопсис. Циклы for…in обращаются к каждому свойству объекта, пока не получат доступ ко всем.*

Пример

//We will use Ben from above.
for(var key in ben){
console.log(ben[key]); //This will work.
console.log(ben.key); //This will not.
}

Итак, если они одинаковы, почему один работает, а другой нет?

^^ Они не одинаковы! ^^

Это фундаментальное различие между двумя стилями ссылок на свойства. Точка превратится в полное [“ ”], что требует конкретного имени свойства. В примере у ben нет свойства с именем key. Но на первой итерации key = «favoriteFood», который полностью работает при передаче в ben[].

Короче говоря, точечная нотация требует фактического имени свойства, а скобочная нотация — нет.

Надеюсь, это помогло! Заходите, скоро появятся новые блоги по JavaScript!