Haydarov Hayotjonning Web dasturlash fanidan tayyorlagan Amaliy ishi



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

Ibtidoiy qadriyatlar


Yuqorida aytib o'tganimdek, String va Number ma'lumotlar turlari ham ob'ektlar, ham ibtidoiy qiymatlar bo'lishi mumkin.

obj \u003d yangi String ("salom"); // Ob'ekt sifatida satr yarating


oddiy \u003d "salom"; // Ibtidoiy qiymat yarating
Ogohlantirish (obj); // Salom
ogohlantirish (oddiy); // salom - hozircha hamma narsani taxmin qilish mumkin
Ogohlantirish (uzunlik); // 6 - String turidagi ob'ektda uzunlik xususiyati bor, u mag'lubiyat uzunligini saqlaydi
ogohlantirish (oddiy uzunlik); // 6
/ * Oddiy narsa emasligiga qaramay, biz String ob'ekti kabi bir xil xususiyatlar to'plamiga kirishimiz mumkin. Bu juda qulay * /
Obj.prop \u003d "matn";
simple.prop \u003d "matn";
Ogohlantirish (obj.prop); // matn - obj oddiy ob'ekt bo'lgani uchun, biz unga yana bitta xususiyatni osonlikcha berishimiz mumkin
ogohlantirish (simple.prop); // noaniq - lekin oddiy narsa ob'ekt emas va bu raqam biz uchun ishlamaydi
* Ushbu manba kodi ta'kidlash manbai bilan ta'kidlangan.

Xuddi shu narsa son va mantiq turlari uchun ham amal qiladi (faqat ular uzunlik xususiyatiga ega emas, lekin boshqa bir qator ajoyib xususiyatlar mavjud).
Iplar va raqamlarni ob'ekt sifatida ishlatish amaliy maqsadga muvofiq emas. ibtidoiy qadriyatlar bilan ishlash qulayroq, lekin shu bilan birga barcha kerakli funktsiyalarni saqlab qoladi. Biroq, rasmni to'ldirish uchun ushbu mexanizmni tushunish kerak.
Ibtidoiy qadriyatlarni literallardan foydalanish bilan aralashtirib yubormang - masalan, "test \u003d new Array ()" yoki "test \u003d" shaklida qator yaratganligimizdan qat'i nazar, natija baribir bir xil ob'ekt bo'lib qoladi. Biz hech qanday ibtidoiy qadriyatlarga ega bo'lmaymiz.

Ob'ektlarni yaratish va ulardan foydalanish


Shunday qilib, class-object paradigmasi amalga oshiriladigan tillardan farqli o'laroq, biz avval sinf yaratishimiz shart emas, keyin sinf ob'ektini yaratamiz. Biz darhol ob'ektni yaratishimiz mumkin, uni quyidagi misolda qilamiz:

test \u003d (


simple_property: "Salom",
object_property: (
user_1: "Petya",
user_2: "Vasya"
},
function_property: function (foydalanuvchi) {
ogohlantirish (bu .simple_property + "," + this .object_property);
}
}
Test.function_property ("user_1"); // Salom, Petya.
* Ushbu manba kodi ta'kidlash manbai bilan ta'kidlangan.

Bizning oldimizda 3 ta xususiyatga ega bo'lgan sinov ob'ekti turibdi, ularning nomlari o'zlari uchun gapiradi deb umid qilaman. Bu erda bizni ko'proq qiziqtirgan narsa funktsiyani o'z ichiga olgan function_property xususiyati. Bunday funktsiyani ob'ekt usuli deb atash mumkin.
Bizning funktsiyamiz ushbu kalit so'zni ikki marta ishlatadi, bu funktsiya chaqirilgan ob'ektga ko'rsatgich (ya'ni mos yozuvlar). Shunday qilib, this.simple_property \u003d test.simple_property \u003d "Salom", va this.object_property \u003d test.object_property \u003d "Petya".
Shuni aniq anglash kerakki, bu har doim u tegishli bo'lgan ob'ektga emas, balki funktsiya chaqirilgan ob'ektga tegishli. Ushbu misolda u bir xil ob'ekt bo'lsa-da, bu har doim ham shunday emas.
test.function_property ("user_1"); // Salom, Petya.
Test2 \u003d yangi ob'ekt (); // test2 \u003d () ga o'xshash yangi ob'ektni yaratishning yana bir shakli.
Test.function_property.call (test2, "user_1"); //Xato
/ * Qo'ng'iroq qilish usuli boshqa ob'ekt nomidan funktsiyani chaqirishga imkon beradi. Bunday holda biz test ob'ekti function_property usulini chaqiramiz va bu endi sinov ob'ektiga emas, balki test2 ob'ektiga ishora qiladi. Va beri unda object_property xususiyati yo'q, keyin this.object_property-ni olishga harakat qilsangiz, skript xatoga yo'l qo'yadi * /
// vaziyatni tuzatishga harakat qiling
test2.simple_property \u003d "Xayrli kun";
test2.object_property \u003d test.object_property; // Bunday holda, biz kodni takrorlamaslik uchun ob'ektni mos yozuvlar yordamida ishlatamiz
Test.function_property.call (test2, "user_1"); // Xayrli kun, Petya.

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



Ob'ektni yaratish va undan foydalanish uchun aniq qadamlar yo'qligi misoldan ham aniq bo'lishi kerak. Ob'ektni istalgan vaqtda istalgan vaqtda o'zgartirish mumkin - foydalanishdan oldin, keyin va hattoki. Bu "an'anaviy" OOPdan muhim farq.

Download 0,96 Mb.

Do'stlaringiz bilan baham:
1   ...   15   16   17   18   19   20   21   22   ...   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