با بحث امروز که درمورد اشیا، متدها، خصوصیات در حاوا اسکریپت میباشدلطفا همراه بمانید.در جهان واقع اتومبیل یک object یا شی محسوب می شود.
یک اتومبیل دارای property یا خصوصیت هایی از قبیل وزن، رنگ و همچنین توابع یا method هایی از قبیل : start و stop دارد.
شی
خصوصیات
متدها
car.name = Fiat
car.model = 500
car.weight = 850kg
car.color = white
car.start()
car.drive()
car.brake()
car.stop()
تمامی اتومبیل ها دارای خصوصیات یکسان هستند، اما مقادیر property آن ها از اتومبیلی به اتومبیل دیگر ممکن است متفاوت باشد.
کلیه ی اتومبیل ها دارای متدهای یکسان هستند، اما متدهای آن ها در زمان های مختلف اجرا می شوند.
اشیا جاوا اسکریپت
پیش تر آموختیم که متغیرها در واقع ظرف هایی برای ذخیره ی مقادیر داده محسوب می شوند.
کد زیر یک مقدار ساده (Fiat) به متغیری به نام car تخصیص می دهد.
نمونه یک
?
۱
۲
۳
۴
var car = “Fiat”;
document.getElementById(“demo”).innerHTML = car;
اشیا نیز متغیر (variable) هستند، با این تفاوت که می توانند مقادیر زیادی را در خود جای دهند.
به عنوان مثال، توجه خود را به نمونه ی زیر جلب کنید که در آن چندین مقدار متفاوت (Fiat ,500 , white) به متغیری به نام car اختصاص داده شده.
نمونه دو
?
۱
۲
۳
۴
var car = { type: “Fiat”, model: 500, color: “white” };
document.getElementById(“demo”).innerHTML = car.type;
همان طور که مشاهده می کنید مقادیر به صورت جفت های اسم : مقدار (name:value pairs) نوشته شده اند.
توجه
اشیا جاوا اسکریپت در حقیقت ظرف هایی برای مقادیر نام گذاری شده (named variables) هستند.
خصوصیات اشیا (object properties)
جفت های اسم : مقدار (name:values pairs) خصوصیات یا properties یک شی در جاوا اسکریپت اطلاق می گردند.
var person = {firstName:”John”، lastName:”Doe”، age:50، eyeColor:”blue”};
Property / خصوصیت
Property Value / مقدار خصوصیت
firstName
John
lastName
Doe
age
۵۰
eyeColor
blue
متدهای یک شی (object methods)
متدها در واقع عملیاتی هستند که می توان روی شی انجام داد.
متدها به عنوانfunction definitions یا تعریف تابع در خصوصیات (property) ذخیره می گردند (می توان متدها را مانند تعریف یک تابع داخل خصوصیت ذخیره کرد).
Property
Property Value
firstName
John
lastName
Doe
age
۵۰
eyeColor
blue
fullName
function() {return this.firstName + ” ” + this.lastName;}
مهم
اشیا جاوا اسکریپت ظرف هایی برای نگهداری مقادیر نام گذاری شده (که خصوصیت یا property خوانده می شود) و متدها هستند.
تعریف یا ایجاد شی در جاوا اسکریپت
یک شئ جاوا اسکریپت را می توان با object literal(نوشته ی متنی) تعریف کرد.
مثال
var person = {firstName:”John”، lastName:”Doe”، age:50، eyeColor:”blue”};
خط فاصله ها و استفاده از enter برای رفتن به خط بعدی اهمیتی نداشته و توسط جاوا اسکریپت نادیده گرفته می شود، به عبارتی دیگر تعریف شی می تواند چندین خط ادامه داشته باشد (در چندین خط قرار گرفته باشد).
مثال
نمونه سه
?
۱
۲
۳
۴
۵
۶
var person = { firstName: “John”, lastName: “Doe”, age: 50, eyeColor: “blue” };
document.getElementById(“demo”).innerHTML =
person.firstName + ” is ” + person.age + ” years old.”;
دسترسی به خصوصیت های اشیا
از دو طریق می توان به خصوصیت اشیا دسترسی پیدا کرد.
objectName.propertyName
یا
objectName[propertyName]
مثال ۱
person.lastName;
مثال ۲
person[“lastName”];
دسترسی به متدهای یک شی
می توان با استفاده از دستور نحوی (syntax) زیر به متد یک شی دسترسی پیدا کرد.
objectName.methodName()
مثال
name = person.fullName();
چنانچه سعی کنید به خصوصیت / property، fullName بدون عملگر () دسترسی پیدا کنید، در آن صورت تعریف تابع / function definition به عنوان نتیجه بازگردانده می شود.
مثال
name = person.fullName;
توجه داشته باشید که هیچگاه نباید رشته ها (strings)، اعداد (numbers)، بولی ها (Booleans) را به عنوان شی تعریف کنید!
چنانچه متغیری را در جاوا اسکریپت با کلیدواژه ی “new”تعریف کنید، آن متغیر به عنوان یک شی ایجاد می گردد.
var x = new String(); // Declares x as a String object
var y = new Number(); // Declares y as a Number object
var z = new Boolean(); // Declares z as a Boolean object
از اشیا بولی، عددی، رشته ای اجتناب کنید، زیرا که کد را پیچیده تر ساخته و سرعت اجرا را کاهش می دهد.