Ob'ekt ma'nosida kvadrat qavslardan foydalanishingiz mumkin. Bunga hisoblash xususiyatlari deyiladi. Misol quyida keltirilgan.
Hisoblangan xususiyatning qiymati oddiy: bu mulk nomini mevadan olish kerakligini anglatadi. Shunday qilib, agar mehmon "olma" ga kirsa, sumka bo'ladi (olma: 5). Kvadrat qavsda yanada murakkab iboralardan foydalanishingiz mumkin:
meva bo'lsin \u003d "olma";
: 5 // bag.appleComputers \u003d 5
Kvadrat qavslar nuqta belgilaridan ancha kuchliroq. Ular mulk nomlari va o'zgaruvchilarni qabul qiladilar. Ammo ular yozish uchun yanada noqulayroq. Shuning uchun, ko'pincha mulk nomlari ma'lum va sodda bo'lganida, nuqta ishlatiladi. Agar sizga murakkabroq narsa kerak bo'lsa, to'rtburchak qavslarga o'ting.
O'zgaruvchida zaxira qilingan so'zlardan biriga teng ism bo'lishi mumkin emas, masalan, for, let, return, va hokazo .. Ammo JavaScript-ni moslashtirishda bunday cheklov yo'q.
Printsipial jihatdan har qanday nomga ruxsat beriladi, ammo uning o'ziga xos nomi bor: u "__proto__" tarixiy sabablarga ko'ra alohida muolaja oladi. Masalan, siz uni ob'ektdan boshqa qiymatga o'rnatolmaysiz:
obj .__ proto__ \u003d 5;
ogohlantirish (obj .__ proto__); //, maqsadga muvofiq ishlamadi
Koddan ko'rinib turibdiki, 5-ibtidoiy topshiriq e'tiborsiz qoldirilgan. Agar operator ob'ektda kalit-qiymat juftligini o'zboshimchalik bilan saqlashni va mehmonga kalitlarni ko'rsatishga ruxsat berishni istasa, bu xatolar va hatto zaifliklarning manbasiga aylanishi mumkin. Bunday holda, mehmon "proto" ni kalit sifatida tanlashi va uni JavaScript ob'ektiga qo'shishi mumkin. __Proto__ bilan muomala qilingan ob'ektlarni odatiy xususiyat sifatida yaratish usuli mavjud. Ixtiyoriy kalitlarni qo'llab-quvvatlovchi ma'lumotlar tuzilmalarining yana bir xaritasi mavjud.
Butun sonli xususiyatlar
Bu erda "integer property" atamasi butun sondan o'zgartirmasdan o'zgartirilishi mumkin bo'lgan satrni anglatadi. Masalan, "49" - bu butun sonli xususiyat nomi, chunki u butun songa va orqaga aylantirilganda, u baribir bir xil bo'ladi. Ammo "+49" va "1.2" emas. Boshqa tomondan, agar tugmachalar butun son bo'lmasa, unda ular yaratilish tartibida keltirilgan. Quyidagi misolga qarang.
Kodlarni terish bilan bog'liq muammoni hal qilish uchun siz kodlarni butun sonli bo'lmagan holda aldashingiz mumkin. Har bir kod oldida "+" (ortiqcha belgisi) qo'shilishi etarli. Endi u maqsadga muvofiq ishlaydi.
Ob'ektlarning ibtidoiy narsalardan farqi shundaki, ular "ma'lumotnoma asosida" saqlanadi va nusxalanadi. Ibtidoiy qiymatlar "butun son sifatida" tayinlanadi va ko'chiriladi. O'zgaruvchan narsa ob'ektning o'zi yoki unga "havola" ni emas, balki "xotiradagi manzilni" saqlaydi. Uning tarkibiga kirish va o'zgartirish uchun har qanday o'zgaruvchidan foydalanishingiz mumkin.
Yuqoridagi misol shuni ko'rsatadiki, unga kirish uchun bitta ob'ekt va administrator mavjud. Keyinchalik, agar keyinchalik boshqa kalit (foydalanuvchi) ishlatilsa, foydalanuvchi o'zgarishni aniqlaydi.
Ob'ektlar uchun tenglik \u003d\u003d va qat'iy tenglik \u003d\u003d\u003d operatorlari bir xil ishlaydi. Ikkita ob'ekt bitta ob'ekt bo'lsa, ularga teng bo'ladi. Obj1\u003e obj2 kabi taqqoslashlar yoki ibtidoiy obj \u003d\u003d 5 bilan taqqoslash uchun ob'ektlar ibtidoiy narsalarga aylantiriladi. Rostini aytsam, bunday taqqoslashlar juda kamdan-kam hollarda kerak bo'ladi va odatda kodlash xatolarining natijasidir.
Do'stlaringiz bilan baham: |