Ниже выдержка из моего учебника.
У меня есть вопрос об использовании [] здесь, в window.history[type](). Я могу сказать, что он разделяет имя объекта (окно) и переменную (тип), чтобы их можно было распознать как отдельные вещи, но есть ли имя для такого использования []? Я выполнил поиск в Google, но ничего не вышло.
$(function() {
//omitted
['back', 'forward'].forEach(function(type) {
$('.' + type).click(function() {
window.history[type]();
});
});
});
это то же самое, что делать window.history.back() или window.history.forward(), однако, поскольку тип является динамическим, вы должны получить доступ к свойству назад или вперед, используя обозначение скобок
type находится внутри [], потому что в этом случае вы пытаетесь прочитать свойство объекта window.history, которое содержит переменная type. Если вы удалите [] и вместо этого используете ., он на самом деле попытается прочитать свойство type внутри объекта window.location, но вы хотите прочитать строку, содержащуюся в переменной. В данном случае back и forward.
В примере кода нет var для доступа к квадратным скобкам, так что это массив с циклом forEach.
Возможный дубликат Доступ к свойствам JavaScript: запись через точку или скобки?
@Mosè Raguzzini, доступ к скобкам осуществляется с помощью window.history[type]()



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Это доступ к свойствам/методам с использованием квадратных скобок. В Javascript вы можете получить доступ к свойствам объекта, используя запись через точку:
myObj.prop
Или запись в скобках:
myObj['prop']
Однако при динамическом создании свойств у вас нет иного выбора, кроме как использовать запись в квадратных скобках:
window.history['forward']()
такой же как
window.history.forward()
Здесь вы перебираете свойства forward и back, а скобки используются для вызова функций из их строковых имен в window.history.
В примере кода нет var для доступа к квадратным скобкам, так что это массив с циклом forEach.
Я думаю, что вопрос был о доступе к window.history, который содержит функции forward и back (), вызываемые window.history[type](), есть ли что-то, что я неправильно истолковал?
Нет, пропустили. Не волнуйтесь, ваш ответ в порядке.
>Здесь вы перебираете свойства forward и back, и скобки используются для вызова функций из их строковых имен в window.history. Я наконец понял, что делает этот код, прочитав ваш ответ. Большое спасибо!
Нотация
[]используется, когда вы пытаетесь получить доступ к свойству с помощью переменной.