ويژگي ها مهمترين بخش هر شئ ر جاوااسكريپت هستند.
ويژگي ها مقادير مرتبط بايك شئ جاوااسكريپت هستند.
،يك شئ جاوااسكريپت مجموعه از ويژگي هاي بدون ترتيب است .ويژگي ها معمولا ميتوانند تغيير كنند يا اضافه وحذف شوند .اما بعضي ها هم فقط خواندني هستند.
فرم كلي(Syntax) دسترسي به بيك ويژگي شئ مطابق زيراست :
يا
عبارت(expression) بايد به نام يك ويژگي منتسب شود .
مثال ـ روش اول دسترسي
person.firstname + " is " + person.age + " years old.";
مثال ـ روش دوم دسترسي به ويژگي
person["firstname"] + " is " + person["age"] + " years old.";person["firstname"] + " is " + person["age"] + " years old.";
دستور حلقهfor ... in از طريق ويژگي هاي يك شئ دور مي زند . فرم كلي آن مطابق زيراست:
for (let variable in object) { // code to be executed }
كدهاي داخل بلوكfor .. in براي هر ويژگي شي دور مي زند .
مثال ـ دور زدن برروي ويژگي هاي شئ
const person = { fname:" John", lname:" Doe", age: 25 }; for (let x in person) { txt += person[x]; }
ميتوان بسادگي براي شئ موجود ، با دادن مقدار به ويژگي جديد آنرا اضافه نمود.
فرض كنيد كه شئperson اكنون وجود دارد، ويژگيnationality وجود ندارد . با دادن مقدار به آن ميتوان آنرا اضافه نمود.
مثال ـ افزايش ويژگي به شئ
person.nationality = "English";
با كي وردdelete ميتوان ويژگي شيئ را حذف نمود .
مثال ـ حذف ويژگيage شئperson
const person = { firstName: "John", lastName: "Doe", age: 50, eyeColor: "blue" }; delete person.age;
مثال ـ همين را بصورتdelete person["age"] هم ميتوان براي حذف استفاده كرد.
const person = { firstName: "John", lastName: "Doe", age: 50, eyeColor: "blue" }; delete person["age"];
كي وردdelete هم مقدار ويژگي را حذف ميكند وهم خود ويژگي را .
پس از حذف ويژگي، قبل از افزودن مجدد قابل استفاده نيست .اگر ويژگي غيرموجود استفاده شود undefinedبرگشت ميشود .
كي وردdelete براي حذف ويژگي طراحي شده نميتوان از آن براي حذف متغير يا تابع استفاده كرد.
عملگر حذف نبايد براي ويژگي شئ از پيش تعريف شده جاوااسكريپت استفاده شود .مي تواند برنامه شمارا خراب كند.
مقدار در يك شئ ميتواند شئ ديگري باشد.
مثال ـ شئ تودرتو
myObj = { name:"John", age:30, cars: { car1:"Ford", car2:"BMW", car3:"Fiat" } }
ميتوان براي دسترسي اشياء تودرتو ازعلامت نقطه يا براكت استفاده نمود.
مثال ـ دسترسي با نقطه
myObj.cars.car2;
مثال ـ دسترسي با براكت
myObj.cars["car2"];
مثال ـ يا بصورت مثال زير
myObj["cars"]["car2"];
مثال ـ يا با استفاده از متغيرهاي كمكي
let p1 = "cars"; let p2 = "car2"; myObj[p1][p2];
مقادير در اشياء ميتوانند آرايه باشند، و مقادير در آرايه شئ
مثال ـ آرايه در مقدار شئ
const myObj = { name: "John", age: 30, cars: [ {name:"Ford", models:["Fiesta", "Focus", "Mustang"]}, {name:"BMW", models:["320", "X3", "X5"]}, {name:"Fiat", models:["500", "Panda"]} ] }
براي دسترسي آرايه هاي داخل آرايه ها ، ازيك حلقهfor-in براي هر آرايه استفاده كنيد .
مثال ـ آرايه در شئ
for (let i in myObj.cars) { x += "<h1>" + myObj.cars[i].name + "</h1>"; for (let j in myObj.cars[i].models) { x += myObj.cars[i].models[j]; } }
همه ويژگي ها داراي نام هستند .بعلاوه آنها داراي مقدار هم ميباشند. مقدار يكي از خاصيت هاي ويژگي است .ساير خواص عبارتند از قابل شمارش، قابل تنظيم وقابل نوشتن.
اين خواص نحوي دسترسي به ويژگي را مشخص ميكنند، كه ايا قابل خواندن است يا نوشتن.
در جاوااسكريپت همه خواص قابل خواندن هستند، اما فقط خاصيت مقدار قابل تغييراست اگر آن قابل نوشتن باشد.
ECMAScript 5داراي متدها براي دريافت وتنظيم همه خواص ويژگي. ميباشد .
اشياء جاوااسكريپت ويژگي هاي نمونه اوليه را بارث ميبرند .باdelete نمي توان ويژگي ارثي را حذف نمود .اما اگر يك ويژگي نمونه اوليه را حذف كنيد، تمام اشياء به ارث رسيده ازنمونه اوليه را تحت تاثيز قرار ميدهد.