powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Пустые квадратные скобки в самом начале команды - что это?
7 сообщений из 7, страница 1 из 1
Пустые квадратные скобки в самом начале команды - что это?
    #39320301
Фотография neznajka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Натолкнулся в Тырнете на такую странную конструкцию:
Код: javascript
1.
[].forEach.call(document.querySelectorAll(......)....)

(здесь)
Любопытно, какой смысл в себе таят пустые квадратные скобки в самом начале строки?
Догадываюсь, что это обращение к чему-то всеобъемлющему в JS, но нигде не могу нагуглить ничего об этом :(
Киньте ссылочку, плиз, где о таком обращении можно почитать.
...
Рейтинг: 0 / 0
Пустые квадратные скобки в самом начале команды - что это?
    #39320328
oaken
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
neznajka,
это пустой анонимный массив . В данном конкретном случае эта конструкция используется для перечисления некоторой сторонней коллекции не являющейся массивом с помощью метода forEach зашитого в прототипе массива. Для подмены контекста используется синтаксис call . Подробней подобная ситуация описана здесь .
...
Рейтинг: 0 / 0
Пустые квадратные скобки в самом начале команды - что это?
    #39320360
...
Рейтинг: 0 / 0
Пустые квадратные скобки в самом начале команды - что это?
    #39320385
Фотография neznajka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Большое спасибо - очень нужная информация! Я там ещё массу полезного для себя нарыл:
- со ссылки от oaken: простой способ просмотра всех пунктов <li> и их содержимого;
- со ссылки "хороший сайт про массивы" - способ обращения "немассивов" в массивы.
Правда, "подмена контекста" пока мной воспринимается туговато, но на интуитивном уровне - начинаю прозревать :)
Благодарю!
...
Рейтинг: 0 / 0
Пустые квадратные скобки в самом начале команды - что это?
    #39320417
Фотография бухалтер фантоцци
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
neznajka,

Подмена контекста в этом случае означает, что this в методе [].forEach подменяется на объект типа NodeList (в данном случае статическую коллекцию!), которую возвращает метод .querySelectorAll()
Метод .call() первым параметром принимает ссылку на контекст или null.
...
Рейтинг: 0 / 0
Пустые квадратные скобки в самом начале команды - что это?
    #39320572
Фотография user89
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
neznajka,

Ну и мои 5 копеек   Через [].slice.call поместить в массив элементы DOM
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
<!DOCTYPE html>
<html>
<head>
  <title>Элементы DOM поместить в массив</title>
  <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head>
<body>
<div id="main">
  <div>1111111111</div>
  <div>2222222222</div>
  <div>3333333333</div>
  <div>4444444444</div>
  <div>5555555555</div>
</div>

<script>
var arr = [].slice.call(document.querySelectorAll('#main > div'), 0); // получаем массив

arr.forEach(function(elem) {
  console.log(elem);
});
</script>
</body>
</html>
...
Рейтинг: 0 / 0
Пустые квадратные скобки в самом начале команды - что это?
    #39320693
Фотография neznajka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Большое спасибо всем за разъяснения. Всё доступно и понятно. Ну, почти всё :)
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Пустые квадратные скобки в самом начале команды - что это?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]