اشیا در جاوا اسکریپت، موضوع این قسمت از آموزش جاوا اسکریپت در بانک پروژه هست. شما در این آموزش درباره شی، تعریف شی در جاوا اسکریپت، خصوصیات و متدهای اشیا و دسترسی به آنها، کلمه کلیدی this و … مطالب مفیدی را خواهید آموخت.
اشیا، خصوصیات و متد های آنها در زندگی واقعی
در زندگی واقعی، یک خودرو هم نوعی شیء است.
یک خودرو دارای خصوصیت هایی مانند وزن و رنگ و دارای متد هایی مانند شروع و توقف است:
شی | خصوصیات | متد ها |
---|---|---|
![]() | car.name = Fiat
car.model = 500 car.weight = 850kg car.color = white | car.start()
car.drive() car.brake() car.stop() |
همه اتومبیل ها دارای ویژگی های یکسانی هستند، اما مقدار این ویژگی ها از ماشین به ماشین متفاوت است.
همه ماشینها دارای متد های (عملیات) همانند هستند، اما متد ها در زمانهای مختلف انجام میشوند.
اشیا در جاوا اسکریپت
شما قبلا یاد گرفته اید که متغیرهای جاوا اسکریپت نگهدارنده هایی برای مقادیر داده ای هستند.
این کد یک مقدار ساده (Fiat) را به یک متغیر به نام ماشین اختصاص می دهد:
1 | var car = "Fiat"; |
اشیاء نیز نوعی متغیر هستند. اما اشیاء می توانند مقادیر متعددی داشته باشند.
این کد مقادیر متعددی (Fiat، ۵۰۰، white) را به یک متغیر به نام ماشین اختصاص می دهد:
1 | var car = {type:"Fiat", model:"500", color:"white"}; |
مقادیر به عنوان جفت های نام:مقدار (نام و مقدار جدا شده توسط دونقطه) نوشته شده است.
اشیاء جاوا اسکریپتی ظروفی برای مقادیر با نام که خصوصیات و متد ها نامیده می شوند، هستند.
تعریف شی در جاوا اسکریپت
تعریف (و ایجاد) یک شیء جاوا اسکریپت بر اساس یک شی در دنیای واقعی:
مثال
1 | var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"}; |
فضاها و خطوط مهم نیستند، تعریف شیء می تواند در چند خط انجام شود:
مثال
1 2 3 4 5 6 7 8 9 10 11 | var person = { firstName: "John", lastName: "Doe", age: 50, eyeColor: "blue" }; |
خصوصیات شی در جاوا اسکریپت
جفت های نام:مقدار در شی های جاوا اسکریپت خصوصیت نامیده می شود:
خصوصیت | مقدار خصوصیت |
---|---|
firstName | John |
lastName | Doe |
age | ۵۰ |
eyeColor | blue |
دسترسی به خصوصیات شی
شما می توانید از دو روش به خواص شیء دسترسی پیدا کنید:
1 | objectName.propertyName |
یا
1 | objectName["propertyName"] |
متد های شیء
اشیاء همچنین می توانند متد داشته باشند.
روش ها عملکرد هایی هستند که می توانند بر روی اشیا انجام شوند.
متد ها به صورت تعریف تابع در خصوصیت ها ذخیره می شوند.
خصوصیت | مقدار خصوصیت |
---|---|
firstName | John |
lastName | Doe |
age | ۵۰ |
eyeColor | blue |
fullName | function() {return this.firstName + ” ” + this.lastName;} |
یک متد، تابعی است که به عنوان یک خصوصیت ذخیره شده است.
مثال
1 2 3 4 5 6 7 8 9 10 11 12 13 | var person = { firstName: "John", lastName : "Doe", id : 5566, fullName : function() { return this.firstName + " " + this.lastName; } }; |
کلیدواژه this
در یک تعریف تابع، this
اشاره به “صاحب” تابع دارد.
در مثال فوق، this
به شیء person اشاره دارد که صاحب تابع fullName
است.
به عبارتی دیگر، this.firstName
مشخص کننده ی خصوصیت firstName
از این شیء است.
اطلاعات بیشتر در مورد کلیدواژه ی this
را در JS this Keyword بیابید.
دسترسی به متد های شیء در جاوا اسکریپت
به روش زیر می توانید به متد های شیء دسترسی پیدا کنید:
1 | objectName.methodName() |
اگر بدون پرانتز () به یک متد دسترسی پیدا کنید، تعریف تابع را برمیگرداند:
رشته ها، اعداد، و بولین ها را به عنوان اشیا تعریف نکنید !
هنگامی که یک متغیر جاوا اسکریپت با کلمه کلیدی “ new
” تعریف گردد، متغیر به عنوان یک شی ایجاد می شود:
1 2 3 4 5 | 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 |
از تعریف کردن رشته ها، اعداد و بولین ها بصورت شی اجتناب کنید. چون هم کد شما را پیچیده می کنند و هم سرعت اجرای آن را کاهش می دهند.
در درس های بعدی مطالب بیشتری درمورد اشیا یاد خواهید گرفت
منبع : W3Schools.com
درس بعدی : رویداد ها در جاوا اسکریپتدرس قبلی : توابع در جاوا اسکریپت