Глубокое понимание функций Javascript
Мы продолжаем разбирать функции, и теперь копнем еще глубже.
Пункты для размышления
- Как вызвать функцию "как метод"?
- Как вызвать функцию "как функцию"?
- Что делают
#apply
и#call
? - Когда необходимо использовать конструктор?
- Когда для функции требуются аргументы?
- Как можно передать функцию в качестве аргумента?
- Как функция может вернуть другую функцию в виде своего результата? Как затем выполнить возвращенную функцию?
- Как отметить аргумент, который не обязателен?
- Как получить доступ к лишним (дополнительным) аргументам?
- Что такое суррогаты и зачем они используются?
- Что значит понятие "пространство имен" в отношении вашего кода?
- Как разделить пространство имен, используя модули?
Ваши задания
- Прочтите Дизайн кода: организация Javascript от Alistapart до статьи "Создание модуля" включительно.
- Прочтите Пространства имен и использование модулей в JS, где объясняются основы... попробуйте использовать эти паттерны в следующих проектах (а также в остальных), и их понимание придет к вам.
Дополнительные ресурсы
Этот раздел содержит полезные ссылки на дополнительные материалы. Это не обязательно, так что расценивайте их как нечто полезное, если вы хотите поглубже погрузиться в тему
- Взгляните на модули с другой стороны, прочитав о паттернах модулей в Javascript на AdequatelyGood.com. Не волнуйтесь насчет сложности материала.
- Тонкости Javascript от jbotus.com - полезный обзор некоторых уже знакомых нам вещей.