Егер сіз файлды сақтап, браузер ішінде ашсаңыз, онда сіздің функцияңыз тышқанмен беттің кез-келген жерінде шерткеннен кейін орындалатынын көресіз.
Біз осы барлық мәселелерге айқынырақ тоқталмаймыз, себебі браузер жағында программалаған кезде көптеген жағдайда JavaScript-тің кірістірілген құралдарын қолданады. Ал бұл құралдардың барлығы объект болып табылғандықтан, олардың не екенін түсінуіміз керек.
Белгілілік үшін ең алдымен ықтиярлы, объекті тұтынушымен анықталған мысалын қарастырып, кейін оның не екенін анықтайық:
Бұл мысал функция конструкторын қолдану иллюстрациясы үшін "Функция" бөлімінде көрсетілген. Мұнда біз бұл мысалды жалпы контекстте қарастырамыз.
Төрт айнымалы құрылады: x0,y0,x1,y1 – бұл Rectangle объектісінің қасиетері. Оларға тек берілген класс объектісінің контектінде ғана рұқсат алуға болады. Мысалы,:
Қасиеттерден басқа біз конструктор ішінде Function() типті екі объектіні JavaScript тілінің area мен perimeter кірістірілген конструкторларын қолданып анықтадық. Бұл берілген класс объектісінің әдістері. Бұл функцияларды Rectangle класс объектісінің контексінде ғана шақыруға болады:
Сонымен, объект – бұл тек қана конструктор арқылы берілген класс объектісін құрып, оның контексін қолдану арқылы рұқсат алуға болатын қасиеттер мен әдістер жиынтығы.
Іс жүзінде программистпен құрылған объектілермен жұмыс істеу кездейсоқ жағдай. Себебі, объект белгілі бетте анықталатын функция – конструктор арқылы құрылады, яғни бұл беттің ішінде құрылғанның барлығы басқа беттерге мұрагер болып қалады.
Әдетте біз JavaScript-тің құрама объектілерімен жұмыс істейміз. Яғни, курсттың басқа бөлімдерінде көрсетілгеннің барлығы – бұл құрама объектілердің қасиеттері мен әдістеріне жүгіну. Бұл мағынада prototype атты объектілер қасиеттері өте қызық. Прототип – бұл белгілі класс объектісі конструкторының басқа атауы. Мысалы, егер біз String класс объектісіне әдіс қосқымыз келсе:
String класс объектілеріне жаңа әдіс жариялау үшін біз Function конструкторын қолдандық. Аз ғана өзгешелік бар: жаңа әдістер мен қасиеттерге объект прототипы өзгертілгеннен кейін ғана пайда болған объектілер ғана ие бола алады. Барлық құрама объектілер JavaScript программа меңгеру алғанға дейін құрылады, бұл prototype қасиеттерінің қолдануын айтарлықтай шектейді.
Сонда да құрама JavaScript класс объектісіне қалайша әдіс қосуға болатынын көрсетейік. Мысал ретінде кірістірілген аталған Image бола алады. Мәселе URL суреттерін Link класс объектісінің URL сияқты талдау:
Мұндағы негізгі идея – конструкторды қолданудан бұрын қайтадан анықтау. HTML-parser JavaScript-интерпретаторын асқындырар алдында HTML-ді башайлап, кірістірілген объектілерді ертерек құрайды. Бұдан беттегі объектіні JavaScript-код арқылы тудыру керек екендігі көруге болады. Бұл жағдайда ең алдымен Image объектісінің қайтадан анықталуы, ал кейін бұл класстың кірістірілген объектісі құрылады. Explorer –мен жұмыс істегенде бәрі нашарлау. Егер жол объектісінде prototype қасиетіне ол ұрыспаса, Image үшін мұндай қасиет анықталмаған.
JavaScript-тің негізгі идеясы тұтынушымен HTML– контейнерлері атрибуттарының мәндері мен HTML–бетін көру процессінде орта көрсетілуінің қасиеттерін өзгерту мүмкіндігі. Бұл жағдайда қайтадан тиеу орындалады.
Іс жүзінде бұл, мысалы, бет фонының түсін өзгерту, жаңа терезе ашу немесе ескертуді шығару.
Бұл идеяны іске асыру үшін құжаттың объектілі моделі ұсынылды. Модель мәні - әрбір HTML-контейнер - бұл үштікпен сипатталатын объект:
Қасиеттер, әдістер мен оқиғалар бірдей жиынтықты объектілер біртипті объектілер класына бірігеді. Кластар – бұл мүмкін болатын объектілер сипаттамасы. Объектлердің өздері құжаттың браузермен енгізілуінен кейін немесе программа жұмысының нәтижесі ретінде пайда болады. Бұл туралы жоқ объектіге ықылас білдірмеу үшін білу керек.
Көптеген HTML– контейнерлерде атрибуттар бар. Мысалы якорь контейнерінде оны гипермәтінді сілтемеге айналдыратын href атрибуты бар:
Барлық атрибуттардың мәндерін өзгертуге болмайды. Мысалы, графикалық суреттің ені мен биіктігі бет тиелу кезінде бірінші тиелген сурет бойынша анықталады. Қалған суреттердің барлығы, оның алдында масштабталады. Microsoft Internet Explorer-де сурет өлшемін өзгерте алады.
Суреттің жалпылығы үшін JavaScript –тегі объектілердің HTML– белгісінде аналогы жоқ қасиеттері бар. Мысалы, navigator объектісі немесе браузер терезесі деп аталатын және JavaScript-тің ең үлкен объектісі саналатын орындалу ортасы.
JavaScript терминологиясында объект әдісі функция қасиеттерінің өзгеруін анықтайды. Мысалы, құжат объектісімен open(), write(), close() қасиеттері байланысты. Бұл әдістер құжат мазмұнын өзгертуге және генерациялауға мүмкіндік береді: