Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
245
Добавлен:
17.04.2018
Размер:
1.91 Mб
Скачать

Интернет-программирование

МИЭТ, 2017

Лекция 6.

JavaScript

ИП. История JavaScript МИЭТ, 2017

1995 г. Задача — язык управления объектами страницы в браузере Netscape

Классификация — прототипно-ориентированный (сценарный)

Использование — встраиваемый в приложения для управления объектами в выделенной области

Разработчики:

Брендан Эйх, США

Мар Андриссен, США

Билл Джой, США

Mozilla Corporation

Netscape Communications

Sun Microsystems

Программист, ученый

Программист, бизнесмен

Программист, ученый, бизнесмен

 

 

Премия Грейс Хоппер за Unix 1986

ИП. Особенности JavaScript

МИЭТ, 2017

Динамическая типизация

Автоуправление памятью (сборка мусора)

Прототипный подход к ООП

Функции — объекты первого класса (функции как объекты)

Лексическая область видимости переменных (scope)

ИП. JavaScript. Прототипное ООП

МИЭТ, 2017

ИП. JavaScript. Наследование в прототипном стиле.

МИЭТ, 2017

ИП. JavaScript. Функции как объекты первого класса

МИЭТ, 2017

Результат работы в консоли

ИП. JavaScript. Прототипное ООП. Функции как методы объекта

МИЭТ, 2017

Результат работы в консоли

ИП. JavaScript. Прототипное ООП. Зачем такой выбор?

МИЭТ, 2017

Ограничения:

1.Контент должен отображаться и без код скрипта

2.Сервер передающий контент клиенту должен «мочь» передать код скрипта для управления контентом

3.Заранее не известно какой контент будет передан

Решение:

1.Контекст в котором можно управлять (в том числе отображать) контентом должен создаваться браузером

2.Скрипт управления контентом должен быть встраиваем в передаваемый контент

3.Скрипт из п.2 должен взаимодействовать с контекстом (окружением), создаваемым браузером в п 1.

Вывод:

1.Если язык встраивается, то логично, что он будет наследовать уже созданный объектный контекст, а не создавать его из не структурированных данных.

2.Встраивание означает, что у самого объекта языка уже будет родитель (прототип)

3.Из 2 и 1 следует, что иерархия прототипов должна распространяться на весь контекст

ИП. JavaScript. Прототипное ООП. Функции как методы объекта

МИЭТ, 2017

Встраивание в контекст

объект

объект

объект

объект

объект

JavaScript

объект

объект

Программа является частью контента

т. е. готовых структурированных данных

Разработчик имеет ограничения.

Он не может определить конструкции, которые не согласуются с заданной в контексте объектной моделью Но тогда логично сделать ее единой,

чтобы одно всегда вытекало из другого.

Построение контекста

Java, C++

объект

объект

объект

объект

объект

объект

Программа создает контент из данных

Разработчик полностью независим в определении структуры приложения,

которую от строит с помощью классов

<script>

var Ups = "How are Your?";

console.log(window.Ups); // Выведет "How are Your?", значит Ups стало свойством объекта window! </script>

Как тогда в «прототипном ООП» организовать инкапсуляцию?

ИП. JavaScript. Лексическая область видимости

МИЭТ, 2017

Функция «видит» переменные, которые были записаны в коде на одном уровне с ней

Таким образом, область видимости функции привязана к порядку написания (лексике), а не исполнения кода.

Соседние файлы в папке Интернет технологии