Библиотека knigago >> Компьютеры и Интернет >> Учебники и самоучители по компьютеру >> Замыкания и объекты


СЛУЧАЙНЫЙ КОММЕНТАРИЙ

# 1513, книга: Клятва Гиппократа
автор: Людвик Соучек

"Клятва Гиппократа" - это научно-фантастический роман Людвика Соучека, который исследует этические и моральные последствия медицинских технологий. Главный герой романа, доктор Ян Кратохвил, является талантливым нейрохирургом, который пытается спасти жизнь молодого пациента. В момент отчаяния он использует экспериментальное устройство, которое позволяет ему перенести мозг пациента в тело здорового донора. Операция проходит успешно, но это действие ставит Кратохвила перед непростыми...

СЛУЧАЙНАЯ КНИГА

Кайл Симпсон - Замыкания и объекты

Замыкания и объекты
Книга - Замыкания и объекты.  Кайл Симпсон  - прочитать полностью в библиотеке КнигаГо
Название:
Замыкания и объекты
Кайл Симпсон

Жанр:

Учебники и самоучители по компьютеру, Java, Java Script

Изадано в серии:

Бестселлеры o’reilly, Вы пока еще не знаете JS

Издательство:

Питер

Год издания:

ISBN:

978-5-4461-1255-5

Отзывы:

Комментировать

Рейтинг:

Поделись книгой с друзьями!

Помощь сайту: донат на оплату сервера

Краткое содержание книги "Замыкания и объекты"

Каким бы опытом программирования на JavaScript вы ни обладали, скорее всего, вы не понимаете язык в полной мере. Это лаконичное, но при этом глубоко продуманное руководство познакомит вас с областями видимости, замыканиями, ключевым словом this и объектами — концепциями, которые необходимо знать для более эффективного и производительного программирования на JS. Вы узнаете, почему они работают и как замыкания могут стать эффективной частью вашего инструментария разработки. Как и в других книгах серии «Вы не знаете JS», здесь показаны нетривиальные аспекты языка, от которых программисты JavaScript предпочитают держаться подальше. Вооружившись этими знаниями, вы достигнете истинного мастерства JavaScript. 16+

Читаем онлайн "Замыкания и объекты". [Страница - 19]

а потом добавляете в нее код. Однако не менее
полезно взглянуть в другом направлении: вы берете произвольный
фрагмент кода, написанный вами, и заключаете его в объявление
функции, что фактически «скрывает» код от наблюдателя.
На практике вокруг кода создается область видимости, это означает, что любые объявления (переменные или функции) в этом
коде теперь будут связаны с областью видимости новой функцииобертки (вместо прежней внешней области видимости). Иначе
говоря, можно «скрывать» переменные и функции, заключая их
в функциональную область видимости.
Для чего может быть полезно «скрывать» переменные и функции?
Существует множество причин для подобной маскировки на базе
области видимости. Обычно они происходят от «принципа наименьших привилегий»1 при проектировании программных продуктов.
Этот принцип гласит, что при проектировании программного
продукта (например, API модуля/объекта) следует предоставлять
1

https://ru.wikipedia.org/wiki/Принцип_минимальных_привилегий.

60

Глава 3. Функциональные и блочные области видимости

доступ только к тому, что абсолютно необходимо, и «скрывать»
все остальное.
Этот принцип распространяется на выбор области видимости,
содержащей переменные и функции. Если все переменные и функции будут находиться в глобальной области видимости, конечно,
они будут доступны для любой вложенной области видимости.
Однако это нарушит «принцип наименьших привилегий», поскольку вы (с большой вероятностью) будете предоставлять доступ ко многим переменным и функциям, которые следовало бы
оставить недоступными, так как при правильном использовании
кода доступ к этим переменным/функциям будет нежелателен.
Пример:
function doSomething(a) {
b = a + doSomethingElse( a * 2 );
console.log( b * 3 );
}
function doSomethingElse(a) {
return a - 1;
}
var b;
doSomething( 2 ); // 15

Вероятно, в этом фрагменте переменная b и функция doSome­
thingElse(..) относятся к «приватным» подробностям того, как
doSomething(..) делает свою работу. Предоставление «доступа» к b
и doSomethingElse(..) внешней области видимости не только излишне, но и, скорее всего, опасно в том отношении, что они могут
быть использованы непредвиденным образом (намеренно или нет),
и это может нарушить предусловия doSomething(..). В более «правильной» архитектуре эти приватные подробности реализации
будут скрыты в области видимости doSomething(..), примерно так:

Предотвращение конфликтов

61

function doSomething(a) {
function doSomethingElse(a) {
return a - 1;
}
var b;
b = a + doSomethingElse( a * 2 );

}

console.log( b * 3 );

doSomething( 2 ); // 15

Теперь b и doSomethingElse(..) недоступны для внешнего влияния,
ими распоряжается только doSomething(..). Функциональность
и конечный результат не изменились, но архитектура скрывает
приватные детали. Такой код обычно считается более качественным.

Предотвращение конфликтов
Другое преимущество «сокрытия» переменных и функций внутри
области видимости — предотвращение случайных конфликтов
между идентификаторами с одинаковыми именами, но разным
предполагаемым использованием. Конфликты часто приводят
к непреднамеренной перезаписи значений.
Пример:
function foo() {
function bar(a) {
i = 3; // изменение `i` в цикле for внешней области
// видимости
console.log( a + i );
}

62

}

Глава 3. Функциональные и блочные области видимости

for (var i=0; i --">

Оставить комментарий:


Ваш e-mail является приватным и не будет опубликован в комментарии.

Книги схожие с «Замыкания и объекты» по жанру, серии, автору или названию:

Познакомьтесь, JavaScript. Кайл Симпсон
- Познакомьтесь, JavaScript

Жанр: Java, Java Script

Год издания: 2022

Серия: Библиотека программиста

Асинхронная обработка и оптимизация. Кайл Симпсон
- Асинхронная обработка и оптимизация

Жанр: Java, Java Script

Год издания: 2019

Серия: Бестселлеры o’reilly

Другие книги из серии «Бестселлеры o’reilly»:

Автостопом по Python. Кеннет Рейтц
- Автостопом по Python

Жанр: Python

Год издания: 2017

Серия: Бестселлеры o’reilly

Анализ поведенческих данных на R и Python. Флоран Бюиссон
- Анализ поведенческих данных на R и Python

Жанр: Python

Год издания: 2022

Серия: Бестселлеры o’reilly