Функции и объекты

Содержание

Слайд 2

Язык программирования не может обойтись без механизма многократного использования кода программы.

Язык программирования не может обойтись без механизма многократного использования кода программы.
Функция как

тип данных;
функция как объект;
функция как конструктор объектов.

Функции

Слайд 3

Функцию определяют при помощи ключевого слова function: function f(arg1,arg2,...) { /*

Функцию определяют при помощи ключевого слова function:
function f(arg1,arg2,...)
{
/* тело функции */
}

Функция как тип

данных
Слайд 4

function определяет переменную с именем f. Эта переменная имеет тип function.

function определяет переменную с именем f. Эта переменная имеет тип function.
Эта переменная, как и любая другая,

имеет значение - свой исходный текст.

Обратите внимание

Слайд 5

Метод valueOf() применим как к числовой переменной i, так и к

Метод valueOf() применим как к числовой переменной i, так и к переменной f, и возвращает

их значение. Более того, значение переменной f можно присвоить другой переменной, тем самым создав "синоним" функции f.

«Синоним» функции

Слайд 6

Этим приемом удобно пользоваться для сокращения длины кода. Например, если нужно

Этим приемом удобно пользоваться для сокращения длины кода. Например, если нужно

много раз вызвать метод document.write(), то можно ввести переменную: 
var W = document.write (обратите внимание - без скобок!), а затем вызывать: 
W('

Лекция

').

Применение «синонима»

Слайд 7

У любого типа данных JavaScript существует объектовая "обертка", которая позволяет применять

У любого типа данных JavaScript существует объектовая "обертка", которая позволяет применять методы типов данных к

переменным и литералам, а также получать значения их свойств. Например, длина строки символов определяется свойством length. Аналогичная "обертка" есть и у функций - это класс объектов Function.
Например, увидеть значение функции можно не только при помощи метода valueOf(), но и используя метод toString().

Функция как объект

Слайд 8

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

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

внутри этой функции. Наиболее часто используемыми свойствами являются: массив (коллекция) аргументов функции ( arguments[] ), его длина ( length ), имя функции, вызвавшей данную функцию ( caller ), и прототип( prototype ).

Свойства функции как объекта

Слайд 9

Объект - это главный тип данных JavaScript. Любой другой тип данных

Объект - это главный тип данных JavaScript. Любой другой тип данных имеет объектовую "обертку".
Это означает,

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

Объекты

Слайд 10

клиентские объекты, входящие в модель DOM. серверные объекты, отвечающие за взаимодействие

клиентские объекты, входящие в модель DOM.
серверные объекты, отвечающие за взаимодействие клиент-сервер. Примеры: Server, Project, Client, File и

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

Виды объектов

Слайд 11

for ... in ... Оператор for(переменная in объект) позволяет "пробежаться" по

for ... in ...
Оператор for(переменная in объект) позволяет "пробежаться" по свойствам объекта.
with
Оператор with задает объект по

умолчанию для блока операторов, определенных в его теле.

Операторы работы с объектами

Слайд 12

Для создания механизма управления страницами на клиентской стороне используется объектная модель

Для создания механизма управления страницами на клиентской стороне используется объектная модель документа (DOM - Document

Object Model). Суть модели в том, что каждому HTML-контейнеру соответствует объект, который характеризуется тройкой:
свойства;
методы;
события.
Объектную модель можно представить как способ связи между страницами и браузером. 

Клиентские объекты

Слайд 13

Объектно-ориентированный язык программирования предполагает наличие иерархии классов объектов. В JavaScript такая

Объектно-ориентированный язык программирования предполагает наличие иерархии классов объектов. В JavaScript такая иерархия начинается

с класса объектов window, т.е. каждый объект приписан к тому или иному окну. Для обращения к любому объекту или его свойству указывают полное или частичное имя этого объекта или свойства объекта, начиная с имени объекта, старшего в иерархии, в который входит данный объект.

Иерархия классов DOM

Слайд 14

Фрагмент DOM

Фрагмент DOM

Слайд 15

Фрагмент DOM (продолжение)

Фрагмент DOM (продолжение)

Слайд 16

Коллекция - это структура данных JavaScript, похожая на массив. Отличие коллекции

Коллекция - это структура данных JavaScript, похожая на массив. Отличие коллекции от массивов заключается

в том, что массивы программист создает сам в коде программы и заполняет их данными; коллекции же создаются браузером и "населяются" объектами, связанными с элементами Web-страницы.

Коллекции

Слайд 17

Основные коллекции в DOM

Основные коллекции в DOM

Слайд 18

Основные коллекции в DOM

Основные коллекции в DOM

Слайд 19

Контейнер якоря ... имеет атрибут HREF, который превращает его в гипертекстовую

Контейнер якоря ... имеет атрибут HREF, который превращает его в гипертекстовую ссылку:
МЭИ
Данной гиперссылке соответствует объект

(класса URL) - document.links[0]. Тогда атрибуту HREF будет соответствовать свойство href этого объекта. К свойству объекта можно обращаться с помощью точечной нотации: объект.свойство .
Например:
document.links[0].href='http://ya.ru/‘;

Свойства

Слайд 20

К свойствам можно также обращаться с помощью скобочной нотации: объект['свойство'] .

К свойствам можно также обращаться с помощью скобочной нотации: объект['свойство'] . В нашем примере:
document.links[0]['href']='http://ya.ru/';
У

объектов, отвечающих гиперссылкам, есть также свойства, не имеющие аналогов среди атрибутов.
Например, свойство document.links[0].protocol в нашем примере будет равно "http:" и т.д.

Свойства

Слайд 21

В терминологии JavaScript методы объекта определяют функции, с помощью которых выполняются

В терминологии JavaScript методы объекта определяют функции, с помощью которых выполняются действия с

этим объектом, например, изменение его свойств, отображения их на web-странице, отправка данных на сервер, перезагрузка страницы и т.п.

Методы

Слайд 22

Например, если есть ссылка МЭИ , то у соответствующего ей объекта

Например, если есть ссылка МЭИ, то у соответствующего ей объекта document.links[0] есть

метод click(). Его вызов в любом месте JavaScript-программы равносилен тому, как если бы пользователь кликнул по ссылке:
МЭИ

Методы. Пример.

Слайд 23

Для всех объектов определен метод преобразования в строку символов: toString(). Например,

Для всех объектов определен метод преобразования в строку символов: toString(). Например, при сложении

числа и строки число будет преобразовано в строку:
“25"+5 = "25"+(5).toString()=“25"+"5"="255"

Метод toString()

Слайд 24

Кроме методов и свойств, объекты характеризуются событиями. Например, с объектом типа

Кроме методов и свойств, объекты характеризуются событиями.
Например, с объектом типа button может происходить

событие Click. В качестве значения атрибута OnClick указывается программа обработки события, которую должен написать на JavaScript автор HTML-документа:

События