Haydarov Hayotjonning Web dasturlash fanidan tayyorlagan Amaliy ishi



Download 0,96 Mb.
bet21/33
Sana18.03.2023
Hajmi0,96 Mb.
#920152
1   ...   17   18   19   20   21   22   23   24   ...   33
Bog'liq
Haydarov Hayotjonning Web dasturlash fanidan tayyorlagan Amaliy

Prototip


Har bir bolaning otasi va onasi bo'lganidek (hech bo'lmaganda biologik ma'noda), JavaScript-dagi har qanday ob'ekt ham shunday. Va agar ota, biz qaror qilganimizdek, dizayner sifatida ishlasa, demak, ona shunchaki prototipdir. Keling, bu qanday sodir bo'lishini ko'rib chiqaylik:

make_me \u003d funktsiya (_name) {


ogohlantirish ("Men ishga tushirdim");
bu .name \u003d _name;
bu .show_name \u003d function () (ogohlantirish (bu .name);)
}
/*
Funksiya kalit so'zini ko'rib, tarjimon uning o'ng tomonidagi kodni va shu vaqtdan boshlab tekshiradi hammasi yaxshi - xotirada yangi ob'ekt yaratadi, bu ham bizning vazifamiz. Keyin, avtomatik ravishda (dasturchining ishtirokisiz) bu funktsiya uchun bo'sh ob'ektga ishora qiluvchi prototip xususiyati yaratiladi. Agar biz buni qo'lda qilsak, u make_me.prototype \u003d new Object ();
Keyinchalik, berilgan ob'ekt (prototip xususiyati tomonidan ko'rsatilgan), shuningdek, funktsiyaga yo'naltirilgan konstruktor xususiyati bilan avtomatik ravishda qo'shiladi. Bunday tsikl aloqasi chiqadi.
Endi (konstruktor: ... funktsiyaga havola ...) deb ta'riflash mumkin bo'lgan ushbu ob'ekt - bu prototip funktsiya.
*/
// Ob'ekt haqiqatan ham ob'ektdir
ogohlantirish (make_me.prototype.constructor typeof); // Funksiya - bu bizning vazifamiz
ogohlantirish (make_me.prototype.constructor \u003d\u003d\u003d make_me); // rost
// make_me funktsiyasi prototipiga yangi usul qo'shing
Bola \u003d yangi make_me ("Vasya"); // ular meni ishga tushirishdi
/ * Endi, oldingi misolda tasvirlangan hamma narsadan tashqari, bola ob'ektida make_me.prototype bilan bir xil ob'ektni ko'rsatadigan qo'shimcha yashirin xususiyat [] yaratiladi. Chunki mulk yashiringan, biz uning qiymatini ko'ra olmaymiz yoki o'zgartira olmaymiz - ammo keyingi ishlarda bu muhim rol o'ynaydi * /
Ogohlantirish (child.name); // Vasya
child.show_name (); // Vasya
Child.set_name ("Kolya");
/ * Birinchidan, tarjimon bola ob'ektida set_name usulini izlaydi. U yo'qligi sababli, u bolani qidirishni davom ettiradi. [] Mulk, uni topadi va boshlaydi. * /
child.show_name (); // Kolya - endi Vasiyaning ismi Kolya :)
Make_me.prototype.show_name2 \u003d function () (ogohlantirish ("Salom", + bu .name;) //T.k. prototip - oddiy ob'ekt, biz uni tezda ham o'zgartirishimiz mumkin
Child2 \u003d yangi make_me ("Petya");
child2.show_name2 (); // Salom, Petya
child.show_name2 (); // Salom Kolya - prototipdagi o'zgarishlar nafaqat yangi yaratilgan ob'ektlarga, balki barcha eski narsalarga ham ta'sir qiladi
Child2.show_name2 \u003d function () (ogohlantirish ( "Men ismimni aytmayman");} // Ob'ektni hali ham o'zgartirishimiz mumkin, shu bilan birga ushbu ob'ektdagi yangi show_name2 usuli (va faqat unda), xuddi prototipdan eski usulni "yozib qo'yadi"
child2.show_name2 (); // Men ismimni aytmayman - chunki endi bizda show_name2 o'z uslubimiz bor, keyin u chaqiriladi va prototipda hech qanday qidiruv bo'lmaydi
Child.show_name2 (); // Salom, Kolya - hammasi shu erda
Make_me.prototype \u003d (prop: "salom") // Keling, yana prototipni yaratishga harakat qilaylik
Ogohlantirish (child.prop); // aniqlanmagan
child.show_name2 (); // Salom Kolya
/ * Agar siz ma'lumotnomada ishlash nima ekanligini eslasangiz, unda hamma narsa aniq. Prototipni qayta yaratish havolani uzadi va endi bola va child2 ob'ektlarining [] xususiyati bitta ob'ektga ishora qiladi (u avval make_me funktsiyasining prototipi bo'lgan) va make_me.prototype xususiyati boshqa ob'ektga, ya'ni make_me funktsiyasining yangi prototipi * /
Child3 \u003d yangi make_me ("Oleg");
ogohlantirish (child3.prop); // salom - kutilganidek

* Ushbu manba kodi ta'kidlash manbai bilan ta'kidlangan.



Misoldan ko'rinib turibdiki, otasi onasiga sodiq qolganda (ya'ni funktsiya prototipi bir xil bo'lib qolsa), barcha bolalar onaga bog'liq va undagi barcha o'zgarishlarga sezgir. Biroq, ota-onalar ajrashishi bilanoq (dizayner prototipni boshqasiga o'zgartiradi), bolalar darhol kimni qaerga tarqatishadi va ular bilan endi aloqasi yo'q.

Download 0,96 Mb.

Do'stlaringiz bilan baham:
1   ...   17   18   19   20   21   22   23   24   ...   33




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish