«Настоящие» примеси на классах JavaScript

Примеси и JavaScript: Хорошие, плохие и уродливые

Примеси и JavaScript как классическое кино с Клинтом Иствудом.

Они хороши тем, что позволяют создать объект из настолько маленьких кусков, насколько это позволяет гибкая природа JavaScript, поэтому примеси довольно популярны в определенных кругах.

Список плохих качеств немного больше:

  • нет общей идеи за концептом примесей;
  • они требуют для использования дополнительные библиотеки;
  • более усложненное создание (например, координацию между примесями и прототипами) и не вписывается в природу шаблонов проектирования;
  • сложнее проводить статический анализ;
  • и наконец, большая часть библиотек мутирует объекты или их прототипы, что приводит к проблемам с оптимизацией, поэтому некоторые программисты их избегают.

Функтор в JavaScript

Рассмотрим следующий код:

function plus1(value) {  
    return value + 1  
}  

Это простая функция, которая получает числовое значение и добавляет к нему единицу. Аналогичным образом мы можем сделать функцию plus2. Мы будем позже использовать эти функции:

function plus2(value) {  
    return value + 2  
}  

Или мы можем написать обобщенную функцию, чтоб использовать любую из этих функций по необходимости:

function F(value, fn) {  
    return fn(value)  
}
F(1, plus1) ==>> 2

Эта функция будет работать хорошо, пока будем ей передавать целочисленное значение.…

Асинхронное программирование и стиль продолжений в JavaScript

В этой статье мы рассмотрим асинхронные функции обратного вызова в JavaScript как продолжения (continuation-passing style aka CPS). Разберемся, как они работают и дадим несколько рекомендаций о их использовании.

Асинхронное программирование и функции обратного вызова

Если вы когда-нибудь программировали на JavaScript, то, вероятно, заметили, что все работает по-другому: вместо возвращения значения, оно передается в функцию обратного вызова. Синхронная программа выглядит следующим образом:

function loadAvatarImage(id) {
    var profile = loadProfile(id);
    return loadImage(profile.avatarUrl);
}

Однако, задачи типа загрузки профиля пользователя могут занимать длительное время, поэтому лучше загрузить их асинхронно.…

Специальные термины, используемые в программировании

У программистов имеется профессиональный жаргон, с помощью которого они могут обмениваться мыслями более лаконично. Мы сейчас познакомимся с той частью специальной терминологии, которая общепризнанна и широко применяется программистами при обсуждении языка и программ как в устной, так и письменной речи. Вот некоторые термины.

Регистровая зависимость — зависимость выражений языка или их частей (например, имен переменных, функций и т. д.) от того, строчными или прописными буквами они написаны.…

Понятие функции в программировании

f (x)

Что такое функция

Программа представляет собой последовательность выражений языка. Нередко случается, что какая-то часть программы (блок кода) неоднократно повторяется. Чтобы устранить подобного рода избыточность программного кода, используют понятие функции. Функция — это именованный блок кода, который вызывается в нужных местах программы по имени. Другими словами, функция представляет собой подпрограмму, которую можно вызвать из основной программы, причем неоднократно. Повторяющийся (да и не только) блок программного кода обычно обозначают некоторым уникальным именем, чтобы потом при необходимости обратиться к нему по этому имени.…