Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Объясните пример. (https://javascript.ru/forum/misc/61728-obyasnite-primer.html)

Spirtikys 05.03.2016 16:06

Объясните пример.
 
Добрый день.
Могли бы объяснить, что здесь происходит по этапам?
function forEach(list, callback) {
    for (var n = 0; n < list.length; n++) {
        callback.call(list[n], n);
    }
}

var weapons = ['shuriken', 'katana', 'nunchucks'];

console.log(weapons[0]);

forEach(
    weapons,
    function (index) {
        if (this == weapons[index]) {
            console.log('Got the expected value of ' + weapons[index]);
        }
    }
);

Непонятно именно то, как происходит работа на этом моменте
callback.call(list[n], n);

То есть сначала мы заходим в функцию, а потом вызываем call или как?
Откуда берет свое значение index? Пробывал дебажить в webshtorme, но так и не понял этого примера.

Decode 05.03.2016 16:20

Цитата:

Сообщение от Spirtikys
То есть сначала мы заходим в функцию, а потом вызываем call или как?

Про метод call в учебнике прочитай.

Цитата:

Сообщение от Spirtikys
Откуда берет свое значение index?

В цикле передается вторым параметром n: callback.call(list[n], n);
Это и есть index.

Spirtikys 05.03.2016 21:33

Цитата:

Сообщение от Decode (Сообщение 410014)
Про метод call в учебнике прочитай.


В цикле передается вторым параметром n: callback.call(list[n], n);
Это и есть index.

Вроде бы разобрался. Как то сложно идет JS после Java


Часовой пояс GMT +3, время: 16:07.