Ќазаќстан республикасы білім жєне ѓылым министрлігі



бет20/33
Дата04.10.2022
өлшемі1.02 Mb.
#461922
түріПрограмма
1   ...   16   17   18   19   20   21   22   23   ...   33
УМК Web.тех Инф каз

Негізгі әдебиет: [1]-31- 800 б,[2]-15- 600 б.
Қосымша әдебиет: []- б, []- б.
Бақылау сұрақтары:
1. Шартты оператор не үшін қажет?
2. Қайталанбалы есептеу қалай жүргізіледі?
3. Объектілер күйлеріне талдау жасау үшін қандай оператор керек?
4. continue операторының белгіленуі?
5. break операторының белгіленуі?


4.3 JavaScript: функциялар. (2 сағат).
Программалық модульдер (функциялар). Анықтама. Ауқымды функциялар.
Айнымалыны құрғанда сіз команда нәтижесіне немесе JavaScript оқиғасына есім бересіз. Функция құрған кезде командаларының серияларына аты ғана меншіктеледі. Көптеген JavaScript командаларын сіз біреуге біріктіресіз. JavaScript - тағы модульдер функция деп аталады. JavaScript-ғы программалар программамен құрылған жаңа функциялар негізінде және алдын ала анықталған функциялар мен JavaScript обьектілері үшін жазылады. Программист сценаридегі кейбір жерлерде қолданылатын кейбір есептерді орындау үшін функция жаза алады. Мұндай функциялар программамен анықталатын функциялар деп аталады. Функциялар функцияны шақыру жолымен орындалады. Функцияны орындау кезінде функциямен шақыруға қажетті ақпарат (аргумент түрінде) беріледі. Функцияны анықтауда берілген барлық айнымалылар локальды айнымалылар деп аталады. Олар тек анықталған функцияларда ғана белгілі. Функциялардың анықталу форматы келесідей:
Function функция – есімі (параметр тізімі)
{
операторлар мен хабарландыру
}
Функция есімі ретінде кез-келген рұқсат идентификатор қолданылады. Әрбір параметрге функцияны анықтау кезінде бір аргумент сәйкес келеді. Егер функция белгілі бір мәндерді қабылдамаса, онда параметрлер тізімі бос болуы керек(функция атынан кейін жақшалардың тек жұбы ғана болады).
Алғашқыда скриптің бірінші бөлігі функцияны орналастырады. Содан кейін жолдағы командасы оны жүктейді. Ең алдымен функцияны қарастырайық.
function dateinbar()
{
var d = new Date();
var y = d.getFullYear();
var da = d.getDate();
var m = d.getMonth() + 1;
var t = da + '/' + m + '/' + y;
defaultStatus = "сіз бетке келдіңіз " + t + ".";
}
Схема біршама түсінікті. Сіз “function”деп жазып, кез-келген есім бересіз. Дәл сол схеманы айнымалыменде бірге, егер онда бос орын болмаса және осы сөз Java Script болса, онда ол кез-келген ұзындықта болуы мүмкін. Функция атынан кейін әдістен кейінгі сияқты дөңгелек жақшалар болады. Яғни функцияны бере отырып есепті орындау үшін жаңа әдіс беріледі. “dateinbar()” есімі (жол оқиғаындағы тізім), өйткені бұл функция – мерзімді оқиға жолына орналастырады. Функциялардан тұратын командалао фигуралы жақшаға {} алынады. Жыл үшін айнымалы беріледі; сан үшін тағы біреуі ; тағы біреуі айы үшін; содан кейін төртінші толығымен күні үшін; соңғы команда жаңа: defaultStatus = “ сіз “+ t +” бетіне келдіңіз” ;
“defaultStatus” (жолдың үнсіздік бойынша күйі) - window обьектісі қасиеті. Оның мақсаты - браузер терезесінің астындағы жол күйіне мәтінді орналастыру. Onload командасы (кіріске,жүктемеге)(бос әріптерге назар аударыңыз) браузерге бетті жүктемелей отырып, келесіні орындау керек екендігін айтады. Біздің жағдайда dateinbar{} функциясы болады.
Бұл команда әрқашанда HTMLқұжатының жолында орналасады. Және содан кейін функция болады. Бірақ оның болуы міндетті емес. Осындай жетістікпен онда обьект әдісінің командасын орналастыруға болады. Ол соңғы емес мәнге ие. Сіз Onload BODY жолына баратынын білесіз. Функциямен бірге скрипт және командаларының арасында орналасқан. Бірақ шындығында оны кез-келген жерге орналастыруға болады, бірақ егер сіз оны onload командасының алдына қойсаңыз онда сіз оны компьютер жадысына орналастырасыз, Onload оны шақырған кезде ол жұмысқа дайын болады. Кез-келген JavaScript командасының жұмысын функция түрінде жазуға болады. Программалау тілі программалау кодын көп ретті қолдану механизмінсіз жұмыс істей алмайды. Мұндай механизм функция немесе процедура мен қамтамасыз етеді. JavaScript-та Function обьекті анықталған. Жалпы жағдайда JavaScript кез-келген обьектілі функция арқылы анықтайды. Обьектіні құру үшін Function арқылы енгізілетін құрастырушы қолданылады. Осылайша, JavaScript функцияларымен бірге келесі кілттік сұрақтар байланысқан:
Функция – мәліметтер типі
Функция – обьект
Обьект құрастырушылар
Функция – мәлімет типі. Function кілттік сөздердің көмегімен функцияны анықтайды:
function f_name(arg1,arg2,...)
{
/* function body */
}
Бұл жерде мынаған назар аудару керек.
Біріншіден, Function f_name айнымалысы анықталады. Бұл айнымалы Function типке жатады.
Document, write(“f_name :” +typeof (f_name)айнымалы типі);
f.name айнымалының мәні :10
f.name айнымалының мәні Function f_name(а)
{if (a>= 0) return true; else return false;}
Берілген жағдайда valueOf әдісі сандық айнымалы сияқты f_name-ге де қолданылады сол себептен функцияларды оны басқа айнымалымен алмастыру жолымен синонимын тағайындауға болады:
function f_name(a)
{
if(a>=0) return true; else return false;
}
document.write("айнымалы мәні f_name:"+f_name(1)+"
");
b = f_name;
document.write("айнымалы мәні b:"+b(1)+"
");


10-бет










айнымалы мәні f_name:true
айнымалы мәні b:true
Егер функцияны айнымалыға меншіктесек, оны басқа функция аргументі ретіндеде беруге болады. JavaScript - кодын іске асыратын eval() функциясын қолдану үшін күшейтіледі. Қалдырылған орындалуларды орындау барысында өзгертуге болады. eval()-дің типтік қолдануы бір типті жолдарды генерациялау есебінде кодтың қысқартылуы болып табылады.
for(i=0;i<5;i++)
{
eval("document.write('student"+i+"
')");
}
кодтың орындалу нәтижесі
student1
student2
student3
student4
Функцияобъект. JavaScript-тің кез-келген мәліметтер типінде объектілік "орау" - wrapper бар, осы айнымалы және литералдарға мәліметтер типі әдісін қолдануға мүмкіндік береді және олардың қасиеттерінің мәнін алуға мүмкіндік береді. Мысалы, символдар жолының ұзындығы length қасиетімен анықталынады. "орауына" ұқсас Function объект - функциясында да бар. Мысалы, функция мәнін valueOf() әдіс көмегімен көруге де болады және toString() әдісін қолданып көруге де болады:
function f_name(x,y)
{
return x-y;
}
document.write(f_name.toString()+"
");
Басып шығарылған:
function f_name(x,y) { return x-y; }
Функция қасиетіне программист функция ішінде шақырғанда ғана қатынай алады. Бұл жағдайда көбіне функцияның аргументтер массивімен (arguments[]), оның ұзындығымен (length), осы функцияны шақыратын функция аты ұзындығымен (caller) және прототипімен (prototype) жұмыс істейді. Функция аргументі тізімін және оның ұзындығын пайдалану мысалын қарастырамыз.
function my_sort()
{
a = new Array(my_sort.arguments.length);
for(i=0;ia[i] = my_sort.arguments[i];
b = a.sort();
return b;
}
b = my_sort(9,5,7,3,2)
for(i=0;idocument.write("b["+i+"]="+b[i]+"
");
Орындалу нәтижесі:
b[0]=2
b[1]=3
b[2]=5
b[3]=7
b[4]=9
Егер функция басқа әртүрлі функциялармен шақырылса, онда caller қасиеті қолданылады:
function slave()
{
document.write(slave.caller+"
");
return slave.caller;
}
function master1()
{
slave();
}
function master2()
{
slave();
}
...
master1();
master2();
Соңғы екі жолдың орындалу нәтижесі :
function master1() { slave(); }
function master2() { slave(); }
Function объектісінің тағы бір қасиеті prototype болып табылады, бірақ бұл объектілердің жалпы қасиеті, сондықтан біз оны Object мәліметтер типі контекстінде қарастырамыз. Function объект конструкторы туралы ғана айтамыз:
f = new Function(arg_1,...,arg_n, body)
Мұнда f - бұл Function класс объектісі. Оны қарапайым функция ретінде де қолдануға болады. Конструктор аты жоқ функцияларды алу үшін қолданады және олар объект әдістерін қайта анықтайды және тағайындайды. Бұл жерде біз объекті конструкциялау сұрағына келдік. Функциялар ішінде айнымалыларды оның қасиеті ретінде, ал функцияларды- әдістері ретінде қарастыруға болады:
function Rectangle(a,b,c,d)
{
this.x0 = a;
this.y0 = b;
this.x1 = c;
this.y1 = d;
this.area = new Function("return Math.abs(this.x0-this.x1)*Math.abs(this.y0-this.y1)");
this.perimeter = new Function("return (Math.abs(this.x0-this.x1)+Math.abs(this.y0-this.y1))*2");
}
c = new Rectangle(0,0,100,100);
document.write(c.area());
Орындау нәтижесі:
10000
This кілттік сөзіне назар аударыңыз. Ол JavaScript - кодасы орындалу жүретін шегінде ағынды объектіге жіберуге мүмкіндік береді. Берілген жағдайда бұл Rectangle класының объектісі .




Достарыңызбен бөлісу:
1   ...   16   17   18   19   20   21   22   23   ...   33




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет