Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 9 лет назад пользователемЯков Свечка
1 Лекция 4 Объекты
2 Типы объектов Тип Пример Источник реализации Регламентирующи й стандарт Пользовательский Определенные пользователем объекты Student или MyClass Программист Нет Встроенный Array, Math Браузер через ядро JavaScript ЕСМА-262 Объект браузера window, navigator Браузер Нет Объект документа document Браузер через механизм DOM Модель DOM консорциума W3C
3 Работа с объектами Создание объектов var city = new String(); var city = new String("Сан-Диего"); Уничтожение объектов var myString = new String("Моне был французским импрессионистом"); // другие строки программного кода myString = new String("Дали был испанским сюрреалистом"); myString = null; Доступ к свойствам alert(myString.length); Доступ к несуществующим свойствам alert(myString.noSuchValue);
4 Работа со свойствами объекта Добавление свойств экземпляра 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();
5 Ссылочные типы Ссылочные типы: Object Array Function Сравнение переменных ссылочных типов: var ar1 = [1,2,3], ar2 = [1,2,3]; alert(ar1 == ar2);
6 Общие свойства и методы объектов Свойство Описание prototype Ссылка на объект, из которого наследуются свойства, не являющиеся свойствами экземпляра constructor Ссылка на функцию объекта, играющую роль конструктора этого объекта toString () Преобразует объект в строку (объектно-зависимое поведение) toLocaleString() Преобразует объект в локализованную строку (объектно- зависимое поведение) valueOf () Преобразует объект в подходящий примитивный тип данных, обычно числовой hasOwnProperty (свойство) Возвращает true, если объект имеет свойство экземпляра с именем, указанным значением свойство, иначе возвращает false isPrototypeOf (объект) Возвращает true, если объект служит прототипом объекта, указанного значением объект propertyIsEnumer able (свойство) Возвращает true, если свойство, указанное значением строки свойство, будет перечислено в цикле for-in
7 Создание пользовательских объектов Создание объектов var robot = new Object(); robot.name = "Парабеллум"; robot.model = "Страж"; robot.hasJetpack = true; Создание методов function strikeIntruder(){ alert("БАХ!"); } robot.attack = strikeIntruder (); Создание методов с помощью анонимных функций robot.attack = function(){ alert("БАХ!"); };
8 Синтаксис JSON литералов объектов var robot = { name: "Парабеллум", model: "Страж", hasJetpack: true, attack: function() { alert("БАХ!"); } }
9 Синтаксис ассоциативных массивов Обращение к свойствам (общий вид) объект.свойство и объект["свойство"] Пример var customers = new Object(); customers["John Doe"] = "123 Main St., Metropolis, USA"; var address = customers["John Doe"];
10 Создание конструкторов Общий вид создания объектов 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();
11 Прототипы Добавление свойств и методов через прототип 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);};
12 Наследование объектов Пример наследника: 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();
13 Переопределение свойств всех объектов Пример: Robot.prototype.toString = function() { return "[object Robot]"; }; UltraRobot.prototype.toString = function() {return "[object UltraRobot]"; };
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.