Лекция 4 Объекты. Типы объектов ТипПример Источник реализации Регламентирующи й стандарт Пользовательский Определенные пользователем объекты Student или.

Презентация:



Advertisements
Похожие презентации
Объектная модель в JavaScript Объектная модель в языке JavaScript основана на прототипах в противоположность объектной модели, основанной на классах.
Advertisements

Язык JavaScript Скриптовый язык для выполнения на html-страницах.
Лекция 2 Типы данных и переменные. Слабый контроль типов Пример: var favNumber; favNumber = 3; favNumber = "Сан-Диего";
Особенности языка JavaScript и его использования.
СИНТАКСИС И УПРАВЛЯЮЩИЕ КОНСТРУКЦИИ JAVASCRIPT. Вставка скрипта. 1. В коде HTML-страницы … 2. Внешний файл.
Лекция 5 Объекты библиотеки JavaScript. Объект Array Создание массивов с помощью конструкторов var firstArray = new Array(); var secondArray = new Array("красный",
Объектная модель DOM javascript. Иерархия классов.
JavaScript Особенности работы с окнами window.open(URL, имя_окна, особенности_окна); // или self.open(URL, имя_окна, особенности_окна);
Php Что такое php? PHP – это высокоуровневый язык программирования для WEB работающий по принципу транслирующего интерпретатора.
Лекция 1 Введение в JavaScript. Пример простейшего XHTML- документа JavaScript Hello World Пepвoe знакомство с JavaScript document.write("Всем привет.
ОБЪЕКТНО- ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ (ООП) 1.
Кафедра ОСУ, Java 2004 Слайд 1 Наследование Наследование позволяет использовать существующий класс для определения новых классов, т.е. способствует.
История Включение в HTML Одна или больше строк кода использовать внутри использовать код внешнего файла Одна или больше строк кода.
Ненавязчивый Unobtrusive JavaScript Сергеев Алексей «Открытые Веб-Технологии»
Наследование Наследование – это отношение является между классами. class Person { string first_name; int birth_year;... } class Student : Person { float.
WEB- ТЕХНОЛОГИИ Лекция 5. Традиционное Web- программирование 1.
Лекция 2: Описание класса 1. Поля 2. Методы 3. Конструкторы.
Электронная Россия ( ), ЭР-2004 Лекция # 4 Основы использования JavaScript.
АССОЦИАТИВНЫЕ КОЛЛЕКЦИИ Лекция 6 1. Отличие от последовательных 2 В последовательной коллекции каждый элемент ассоциируется с номером, начиная с 0. В.
Преобразования типов В языке C/C++ имеется несколько операций преобразования типов. Они используются в случае, если переменная одного типа должна рассматриваться.
Транксрипт:

Лекция 4 Объекты

Типы объектов Тип Пример Источник реализации Регламентирующи й стандарт Пользовательский Определенные пользователем объекты Student или MyClass Программист Нет Встроенный Array, Math Браузер через ядро JavaScript ЕСМА-262 Объект браузера window, navigator Браузер Нет Объект документа document Браузер через механизм DOM Модель DOM консорциума W3C

Работа с объектами Создание объектов var city = new String(); var city = new String("Сан-Диего"); Уничтожение объектов var myString = new String("Моне был французским импрессионистом"); // другие строки программного кода myString = new String("Дали был испанским сюрреалистом"); myString = null; Доступ к свойствам alert(myString.length); Доступ к несуществующим свойствам alert(myString.noSuchValue);

Работа со свойствами объекта Добавление свойств экземпляра var myString = new String("Всем привет"); myString.simpleExample = true; Удаление свойств экземпляра var myString = new String("Всем привет"); myString.simpleExample = true; delete myString.simpleExample; Доступ в стиле ассоциативного массива alert(myString["toUpperCase"]()); Добавление методов к экземпляру var myString = new String("Я говорю не слишком громко? "); myString.sayNo = function() { alert("Да нет.");}; myString.sayNo();

Ссылочные типы Ссылочные типы: Object Array Function Сравнение переменных ссылочных типов: var ar1 = [1,2,3], ar2 = [1,2,3]; alert(ar1 == ar2);

Общие свойства и методы объектов Свойство Описание prototype Ссылка на объект, из которого наследуются свойства, не являющиеся свойствами экземпляра constructor Ссылка на функцию объекта, играющую роль конструктора этого объекта toString () Преобразует объект в строку (объектно-зависимое поведение) toLocaleString() Преобразует объект в локализованную строку (объектно- зависимое поведение) valueOf () Преобразует объект в подходящий примитивный тип данных, обычно числовой hasOwnProperty (свойство) Возвращает true, если объект имеет свойство экземпляра с именем, указанным значением свойство, иначе возвращает false isPrototypeOf (объект) Возвращает true, если объект служит прототипом объекта, указанного значе­нием объект propertyIsEnumer able (свойство) Возвращает true, если свойство, указанное значением строки свойство, будет перечислено в цикле for-in

Создание пользовательских объектов Создание объектов var robot = new Object(); robot.name = "Парабеллум"; robot.model = "Страж"; robot.hasJetpack = true; Создание методов function strikeIntruder(){ alert("БАХ!"); } robot.attack = strikeIntruder (); Создание методов с помощью анонимных функций robot.attack = function(){ alert("БАХ!"); };

Синтаксис JSON литералов объектов var robot = { name: "Парабеллум", model: "Страж", hasJetpack: true, attack: function() { alert("БАХ!"); } }

Синтаксис ассоциативных массивов Обращение к свойствам (общий вид) объект.свойство и объект["свойство"] Пример var customers = new Object(); customers["John Doe"] = "123 Main St., Metropolis, USA"; var address = customers["John Doe"];

Создание конструкторов Общий вид создания объектов function имя_объекта(список_параметров) {…} var имя_переменной = new имя_объекта(список_параметров); Пример (два конструктора) function Robot(){ } function Robot(needsToFly){ if (needsToFly) this.hasJetpack = true; else this.hasJetpack = false; } var guard = new Robot(true); var sidekick = new Robot();

Прототипы Добавление свойств и методов через прототип Robot.prototype.hasJetpack = false; Robot.prototype.doAction = function(){ alert("Тревога!"); } String.prototype.getThirdChar = function() { return this.charAt(2); } Обращение к добавленному свойству var guard = new Robot(true); var canFly = guard.hasJetpack; guard.doAction(); var с = "Пример".getThirdChar(); Переопределение свойств: Robot.prototype.hasJetpack = false; Robot.prototype.actionValue = "Тревога! Нарушитель!"; Ссылка this Robot.prototype.doAction = function(){alert(this.actionValue);};

Наследование объектов Пример наследника: function UltraRobot(extraFeature) { if (extraFeature) this.feature = extraFeature; } UltraRobot.prototype = new Robot(); UltraRobot.prototype.feature = "Радар"; Добавление и переопределение свойств в наследнике: var guard = new UltraRobot("Выполняет вычисления"); var feature = guard.feature; var canFly = guard.hasJetpack; guard.doAction();

Переопределение свойств всех объектов Пример: Robot.prototype.toString = function() { return "[object Robot]"; }; UltraRobot.prototype.toString = function() {return "[object UltraRobot]"; };