ВДА — неделя 10

  1. Опишите одну вещь, которую вы изучаете сегодня на уроке.
  2. Что такое замыкание и как и зачем его использовать? Замыкание дает вам доступ к области видимости внешней функции из внутренней функции. В JavaScript замыкания создаются каждый раз, когда создается функция, во время создания функции.
    Чтобы использовать замыкание, просто определите функцию внутри другой функции и откройте ее. Чтобы предоставить функцию, верните ее или передайте другой функции.
    Внутренняя функция будет иметь доступ к переменным в области действия внешней функции даже после возврата внешней функции.

3. Как бы вы описали отношения между замыканием и функциями?

4. Каков типичный вариант использования анонимных функций?

5. В чем разница между .call() и .apply()?

  • call() принимает список аргументов. (аргументы передаются индивидуально, а не массивом)
  • apply() принимает один массив аргументов.

6. Объясните, как это работает в JavaScript? Ключевое слово this ничего не значит, если оно не определено окружающим контекстом. Объект, на который ссылается this, изменяется каждый раз, когда изменяется контекст выполнения (глобальный объект, родительский объект, «это» с вызовом для применения методов).

  • · По умолчанию это относится к глобальному объекту, который является глобальным в случае NodeJS и оконным объектом в случае браузера.
  • · Когда метод вызывается как свойство объекта, это относится к родительскому объекту
  • · Когда функция вызывается с использованием метода вызова и применения, это относится к значению, переданному в качестве первого аргумента метода вызова или применения.

7. Объясните, как работает прототипное наследование.

8. Как бы вы описали отношения между объектами и прототипом?

9. Что вы думаете о AMD по сравнению с CommonJS? AMD (определение асинхронного модуля) лучше подходит для браузера, отсюда и название «асинхронный», поскольку он загружает каждый отдельный модуль асинхронно, а не загружает его одним большим файлом. require() определяет список зависимых модулей или ресурсов, которые должны быть загружены перед запуском набора кода. Этот код находится в функции обратного вызова, которая выполняется асинхронно, т. е. запускается позже, а не в текущем «потоке». В частности, он выполняется, когда все зависимости загружены и готовы.

  • Модули CommonJS разработаны с учетом разработки серверов. API является синхронным. Модули загружаются в данный момент и в том порядке, в котором они требуются внутри исходного файла.