در زندگي واقعي يك ماشين يك شئ ميباشد .يك ماشين داراي مشخصات مثل وزن، رنگ و متد مثل شروع حركت وتوقف مي باشد .مشخصات همان ويژگي شئ است.
Object | Properties | Methods |
---|---|---|
car.name = Fiat car.model = 500 car.weight = 850kg car.color = white |
car.start() car.drive() car.brake() car.stop() |
همه ماشين ها داراي ويژگي يكسان هستند، اما مقادير ويژگي ها ازماشين به ماشين تفاوت دارد.
همه ماشين هاي داراي متد مشابهي هستند، اما متدها ها در زمانهاي مختلف انجام ميشود.
قبلا مطرح شده كه متغيرها، محفظه اي براي نگهداري داده است.
كد زير مقدارساده اي را(Fiat) به متغيري بنامcar نسبت يا درآن قرار ميدهد .
let car = "Fiat";
اشياء همچنين متغير هستند، اما چندين مقدار در خود ذخيره ميكنند .كد زير چند مقدار
const car = {type:"Fiat", model:"500", color:"white"};
مقادير در زوجname:value نوشته ميشوند .مابينname وvalue علامت كالن (:)قرار ميگيرد .
روش معمول اعلام شئ با كي وردconst ميباشد .
براي اطلاعات بيشتر در مورد كي وردconst> به بخش jS Const مراجعه كنيد.
يك شئ جاوااسكريپت را ميتوان با كي وردconst> تعريف يا ايجاد نمود، مشابه يك شئ ليترالي.
مثال ـ تعريف شئ
const person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
فضاي خالي يا شكست خط در تعريف اشكالي ندارد، تعريف ميتواند در چندين خط نوشته شود.
مثال ـ تعريف شئ در جند خط
const person = { firstName: "John", lastName: "Doe", age: 50, eyeColor: "blue" };
زوجname:values را در شئ جاوااسكريپت، ويژگي (propreties) مي نامند .جدول زير اين ويژگي ها را براي شئperson بيان ميكند .
ويژگي(property) | مقدار ويژگي(Property Value) |
---|---|
fistName | John |
lastName | Doe |
age | 50 |
eyeColor | blue |
ميتوان بدو روش به ويژگي هاي شئ دسترسي پيدا كرد .مطابق زير:
objectName.propertyName
يا
objectName["propertyName"]
مثال ـ دسترسي نوع اول روي شئperson
person.lastName;
مثال ـ دسترسي نوع دوم روي شئيperson
person["lastName"];
اشياء جاوااسكريپت محفظه هائي براي نگهداري نام ويژگي(named) و مقدار ويژگي (value)كه ويژگي ها (preperties) ناميده ميشوند، هستند .
اشياء ميتوانند هم متدهائي داشته باشند .متدها اعمالي هستند كه روي شئ ميتوان انجام داد.متدها
در ويژگي تعاريف تابع
جدول كامل شئperson با توجه به متدآن
ويژگي(property) | مقدار ويژگي(Property Value) |
---|---|
fistName | John |
lastName | Doe |
age | 50 |
eyeColor | blue |
fullName | function(){return this.firstName+""+this.lastName;} |
براي شئperson متدي بنامfullName تعريف شده كه نام كامل را برگشت ميدهد.
مثال ـ شئperson با متد fullName
const person = {
firstName: "John",
lastName : "Doe",
id : 5566,
fullName : function() {
return this.firstName + " " + this.lastName;
}
};
در مثال بالا كي وردthis به شئperson اشاره دارد . يعنيthis.firstName بمعني person.firstNameميباشد .
در جاوااسكريپت كي وردthis ارجاع به شئ را دارد .شئ همانست كه متدش فراخوان ميشود .يعني كي ورد فوق به اشياء مختلف اشاره دارد، كه وابسته به متد شئ ميباشد.
كي وردthis براي موارد زير استفاده ميشود .
توجه ـthis نمي تواند بعنوان متغير باشد .آن يك كلمه رزرو شده است .نمي توان مقدار آن را تغييرداد.
در تعريف تابعthis به مالك تابع ارجاع دارد .
در مثال بالا كي وردthis به شئ person ارجاع ميكند، كه مالك متد fullName است.
ميتوان با الگوي زير به متدهاي شئ دسترسي پيدا كرد.
objectName.methodName()
مثال ـ استفاده از متدشئperson
name = person.fullName();
اگر بدون عملگر( ) به متد دسترسي داشته باشيد يا آنرا فراخوان كنيد، تعريف تابع برگشت ميشود.
مثال ـ دسترسي به تعريف متد شئperson
name = person.fullName;
هنگاميكه يك متغير جاوااسكريپت با كي وردnew تعريف ميشود، آن بعنوان يك شئ ايجاد ميگردد.
x = new String(); // Declares x as a String object y = new Number(); // Declares y as a Number object z = new Boolean(); // Declares z as a Boolean object
از اشياءstrig , number ,boolean دوري كنيد، آنها كد شمارا پيچيده كرده و سرعت اجرا را كاهش ميدهند.
در ادامه در فصلهاي بعدي مطالب بيشتري در مورد اشياء مشاهده ميكنيد.