KNOW INTUIT, Лекция, Функции и обекти
Обектни оператори
Операторът for(променлива в обект) ви позволява да "преминете" през свойствата на даден обект. Помислете за пример (вижте по-долу за обекта на документа):
Резултатът от този скрипт ще бъде дълъг списък от свойства на обекта на документа, ние ще посочим само началото му (вземете го сами):
ЗабележкаОпитайте да стартирате този скрипт в различни браузъри и ще видите, че наборът от свойства на обекта документ е различен в различните браузъри. Подобна е ситуацията с много DOM обекти, които ще бъдат разгледани по-долу. Ето защо при програмирането на динамични HTML документи трябва постоянно да се грижите за така наречената крос-браузърна съвместимост.
Операторът with указва обект по подразбиране за блок от оператори, дефинирани в тялото му. Синтаксисът му е следният:
Всички свойства и методи, които се срещат в тялото на този оператор, трябва или да бъдат написани изцяло, или ще се считат за свойства и методи на обекта, указан в оператора with. Например, ако документът има формуляр, наречен anketa, и има полета за въвеждане, наречени възраст и специалност, тогава можем да използваме оператора with, за да съкратим нотацията:
Тук age.value е съкратено за document.anketa.age.value, length е съкратено за свойството document.anketa. дължина (означава броя на полетата във формуляра), submit() е съкращение за метода document.anketa. submit() (което изпраща въведените във формуляра данни към сървъра), докато прозорецът. alert() е написан изцяло и не препраща към обекта document.anketa.
Операторът with е полезен при работа с обект Math, който се използва за достъп до математически функции и константи. Например, вътре в тялото на with( Math) можете спокойно да напишете: sin(f)* cos (h+PI/2) ; без израза with, Math ще трябва да бъде посочен три пъти: Math .sin(f)* Math . cos(h+Math .PI/2)
Клиентски обекти
За създаване на механизъм за управление на страници от страна на клиента се използва обектният модел на документа ( DOM - Document Object Model ). Същността на модела е, че всеки HTML контейнер съответства на обект, който се характеризира с тройка:
- Имоти
- методи
- събития
Обектният модел може да се разглежда като начин за комуникация между страниците и браузъра. Обектният модел на документа е представяне на обектите, техните методи, свойства и събития, които присъстват и се случват в софтуера на браузъра по начин, удобен за работа от HTML код и източник на скрипт на страницата. Можем да го използваме, за да съобщим желанията си на браузъра и след това на посетителя на страницата. Браузърът ще изпълни нашите команди и съответно ще промени страницата на екрана.
Обекти с еднакъв набор от свойства, методи и събития се групират в класове от подобни обекти. Класовете са описания на възможни обекти. Самите обекти се появяват едва след зареждане на документа от браузъра или в резултат на работа на програмата. Това винаги трябва да се помни, за да не се отнася до обект, който не съществува.
Йерархия на DOM класове
Нека направим резервация веднага, че диаграмата на обектния модел, дадена от нас, е правилна за Netscape Navigator версия 4 и по-нова, както и за Microsoft Internet Explorer версия 4 и по-нова. Още веднъж отбелязваме, че обектните модели на Internet Explorer и Netscape Navigator са напълно различни и горната диаграма се основава на тяхната обща част.
За DOM обекти някои свойства са задължителни, докато други зависят от уеб страницата.Например, обектът прозорец винаги има обекти за местоположение и история като свои свойства, т.е. това са задължителни свойства. Ако HTML страницата съдържа контейнер, тогава обектът прозорец ще има обект документ като свойство. Ако HTML страницата съдържа контейнер FRAMESET > с вложени контейнери FRAME > , тогава обектът прозорец ще има имена на рамки като свойства, като window.f1 . Последните, както ще видим в следващите лекции, сами по себе си са обекти на класа прозорец и всичко по-горе е вярно за тях на свой ред.
Забележка. Строго погледнато, всеки браузър, независимо дали е Internet Explorer, Netscape Navigator или Opera, има свой собствен обектен модел. Обектните модели на различни браузъри (и дори различни версии на един) се различават един от друг, но имат фундаментално еднаква структура. Следователно няма смисъл да се спираме на всеки от тях поотделно. Ще разгледаме общ подход за всички браузъри, понякога, разбира се, фокусирайки се върху разликите между тях.