Что здесь делает этот "[]"?

Ниже выдержка из моего учебника.

У меня есть вопрос об использовании [] здесь, в window.history[type](). Я могу сказать, что он разделяет имя объекта (окно) и переменную (тип), чтобы их можно было распознать как отдельные вещи, но есть ли имя для такого использования []? Я выполнил поиск в Google, но ничего не вышло.

$(function() {
//omitted
['back', 'forward'].forEach(function(type) {
  $('.' + type).click(function() {
    window.history[type]();
    });
  });
});

Нотация [] используется, когда вы пытаетесь получить доступ к свойству с помощью переменной.

Code Maniac 01.02.2019 14:02

это то же самое, что делать window.history.back() или window.history.forward(), однако, поскольку тип является динамическим, вы должны получить доступ к свойству назад или вперед, используя обозначение скобок

jo_va 01.02.2019 14:08
type находится внутри [], потому что в этом случае вы пытаетесь прочитать свойство объекта window.history, которое содержит переменная type. Если вы удалите [] и вместо этого используете ., он на самом деле попытается прочитать свойство type внутри объекта window.location, но вы хотите прочитать строку, содержащуюся в переменной. В данном случае back и forward.
Vaibhav Vishal 01.02.2019 14:08

В примере кода нет var для доступа к квадратным скобкам, так что это массив с циклом forEach.

Mosè Raguzzini 01.02.2019 14:17

Возможный дубликат Доступ к свойствам JavaScript: запись через точку или скобки?

Mosè Raguzzini 01.02.2019 14:28

@Mosè Raguzzini, доступ к скобкам осуществляется с помощью window.history[type]()

jo_va 04.02.2019 22:56
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
2
7
125
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Это доступ к свойствам/методам с использованием квадратных скобок. В Javascript вы можете получить доступ к свойствам объекта, используя запись через точку:

myObj.prop

Или запись в скобках:

myObj['prop']

Однако при динамическом создании свойств у вас нет иного выбора, кроме как использовать запись в квадратных скобках:

window.history['forward']()

такой же как

window.history.forward()

Здесь вы перебираете свойства forward и back, а скобки используются для вызова функций из их строковых имен в window.history.

Вот документ связан @Teemu

В примере кода нет var для доступа к квадратным скобкам, так что это массив с циклом forEach.

Mosè Raguzzini 01.02.2019 14:18

Я думаю, что вопрос был о доступе к window.history, который содержит функции forward и back (), вызываемые window.history[type](), есть ли что-то, что я неправильно истолковал?

jo_va 01.02.2019 14:21

Нет, пропустили. Не волнуйтесь, ваш ответ в порядке.

Kaiido 01.02.2019 14:24

>Здесь вы перебираете свойства forward и back, и скобки используются для вызова функций из их строковых имен в window.history. Я наконец понял, что делает этот код, прочитав ваш ответ. Большое спасибо!

Yuko Kasahara 14.02.2019 06:17

Другие вопросы по теме