Дэвид Флэнаган - JavaScript. Подробное руководство, 6-е издание

Здесь есть возможность читать онлайн «Дэвид Флэнаган - JavaScript. Подробное руководство, 6-е издание» — ознакомительный отрывок электронной книги совершенно бесплатно, а после прочтения отрывка купить полную версию. В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Город: СПб, Год выпуска: 2012, ISBN: 2012, Издательство: Символ-Плюс, Жанр: Базы данных, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

JavaScript. Подробное руководство, 6-е издание: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «JavaScript. Подробное руководство, 6-е издание»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

C момента выхода первого издания в 1996 году книга "JavaScript: Подробное руководство" превратилась в библию программистов на JavaScript. За эти годы было издано более 500000 экземпляров, и веб-разработчики по-прежнему с восторгом отзываются о ней.
Эта книга - одновременно и руководство программиста, и полноценный справочник по базовому языку JavaScript и клиентским прикладным интерфейсам, предоставляемым веб-броузерами.

JavaScript. Подробное руководство, 6-е издание — читать онлайн ознакомительный отрывок

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «JavaScript. Подробное руководство, 6-е издание», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

return function() { // Возвращает новую функцию

var result = f.apply(this, arguments); // вызов f

return !result; // и инверсия результата.

};

}

var even = function(x) { // Функция, определяющая четность числа

return х % 2 === 0;

};

var odd = not(even); // Новая функция, выполняющая противоположную операцию

[1,1,3,5,5].every(odd); // => true: все элементы массива нечетные

Функция not() в примере выше является функцией высшего порядка, потому что она принимает функцию в виде аргумента и возвращает новую функцию. В качестве еще одного примера рассмотрим функцию mаррег(), представленную ниже. Она принимает функцию в виде аргумента и возвращает новую функцию, которая отображает один массив в другой, применяя указанную функцию. Данная функция использует функцию mар(), которая была определена выше, и важно понимать, чем отличаются эти две функции:

// Возвращает функцию, которая принимает массив в виде аргумента, применяет функцию f

// к каждому элементу и возвращает массив возвращаемых значений.

// Эта функция отличается от функции тар(), представленной выше,

function mapper(f) {

return function(a) { return map(a, f); };

}

var increment = function(x) { return x+1; };

var incrementer = mapper(increment);

incrementer([1,2,3]) // => [2,3,4]

Ниже приводится пример еще одной, более универсальной функции, которая принимает две функции, f и g, и возвращает новую функцию, которая возвращает результат f(g()):

// Возвращает новую функцию, которая вычисляет f(g(...)). Возвращаемая функция h

// передает все свои аргументы функции g, затем передает значение, полученное от g,

// функции f и возвращает результат вызова f. Обе функции, f и g,

// вызываются с тем же значением this, что и h.

function compose(f,g) {

return function() {

// Для вызова f используется call, потому что ей передается

// единственное значение, а для вызова g используется apply,

// потому что ей передается массив значений,

return f.call(this, g.apply(this, arguments));

};

}

var square = function(x) { return x*x; };

var sum = function(x,y) { return x+y; };

var squareofsum = compose(square, sum);

squareofsum(2,3) // => 25

Функции partial() и memoize(), которые определяются в следующем разделе, представляют собой еще две важные функции высшего порядка.

8.8.3. Частичное применение функций

Метод bind() функции f (раздел 8.7.4) возвращает новую функцию, которая вызывает f в указанном контексте и с заданным набором аргументов. Можно сказать, что он связывает функцию с объектом контекста и частично применяет аргументы. Метод bind() применяет аргументы слева, т.е. аргументы, которые передаются методу bind(), помещаются в начало списка аргументов, передаваемых оригинальной функции. Однако есть возможность частичного применения аргументов справа:

// Вспомогательная функция преобразования объекта (или его части),

// подобного массиву, в настоящий массив. Используется ниже

// для преобразования объекта arguments в настоящий массив,

function array(a, n) { return Array.prototype.slice.call(a, n || 0); }

// Аргументы этой функции помещаются в начало списка

function partialLeft(f /*, ...*/) {

var args = arguments; // Сохранить внешний массив аргументов

return function() { // И вернуть эту функцию

var а = array(args, 1); // Начиная с элемента 1 во внеш. масс,

а = a.concat(array(arguments)); // Добавить внутренний массив аргум.

return f.apply(this, а); // Вызвать f с этим списком аргументов

};

}

// Аргументы этой функции помещаются в конец списка

function partialRight(f /*, ...*/) {

var args = arguments; // Сохранить внешний массив аргументов

return function() { // И вернуть эту функцию

var а = array(arguments); // Начинать с внутр. масс, аргументов

а = a.concat(array(args,1)); // Добавить внешние арг., начиная с 1.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «JavaScript. Подробное руководство, 6-е издание»

Представляем Вашему вниманию похожие книги на «JavaScript. Подробное руководство, 6-е издание» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «JavaScript. Подробное руководство, 6-е издание»

Обсуждение, отзывы о книге «JavaScript. Подробное руководство, 6-е издание» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x