تعاریف شیء
محتویات
- ۱ اشیاء دنیای واقعی، ویژگی ها و متدها
- ۲ اشیاء در جاوا اسکریپت
- ۳ تعریف شیء در جاوا اسکریپت
- ۴ ویژگی های اشیاء
- ۵ دسترسی به ویژگی های یک شیء
- ۶ متدهای شیء
- ۷ کلمه کلیدی this
- ۸ دسترسی به متدها یا رفتارهای یک شیء
- ۹ رشتههای متنی، اعداد و بولینها را به صورت شیء تعریف نکنید!
- ۱۰ تمرینات جاوا اسکریپت
- ۱۱ منابع آموزشی
اشیاء دنیای واقعی، ویژگی ها و متدها
در زندگی واقعی، اتومبیل یک شیء است. [۱]
یک اتومبیل ویژگیهایی مانند: وزن و رنگ دارد و متدها یا رفتارهایی مانند روشن شدن و خاموش شدن دارد:
شیء | ویژگی | متد یا رفتار |
---|---|---|
car.name=fiat | car.start() | |
car.model=500 | car.drive() | |
car.weight=850kg | car.brake() | |
car.color=white | car.stop() |
اتومبیلها ویژگیهای یکسانی دارند، اما مقادیر ویژگیها در هر اتومبیل متفاوت از سایر اتومبیلها است.
تمامی اتومبیلها رفتارها یا متدهای یکسانی دارند، اما متدها در هر اتومبیل در زمانهای متفاوتی اجرا میشوند.
اشیاء در جاوا اسکریپت
شما تا الان یادگرفتید که متغیرها در جاوا اسکریپت محلهایی برای ذخیره انواع داده هستند.
کد زیر، یک متغیر با نام car را با مقدار ساده (fiat) مقدار دهی میکند:
var car = "Fiat";
اشیاء هم متغیر هستند، اما اشیاء میتوانند چندین مقدار داشته باشند.
کد زیر یک متغیر با نام car را با چندین مقدار (fiat، ۵۰۰، سفید (به انگلیسی: White) مقداردهی میکند.
var car = {type:"Fiat", model:"500", color:"white"};
این مقادیر به صورت نام:مقدار (به انگلیسی: name:value)، نوشته میشوند (نام و مقدار به وسیلهٔ یک : از یکدیگر جدا میشوند).
تعریف شیء در جاوا اسکریپت
شما میتوانید یک شیء را همانند مثال زیر تعریف کنید. (یا بسازید)
مثال
var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
فاصلههای خالی و فاصلهٔ بین خطوط در هنگام تعریف شیء در جاوا اسکریپت اهمیتی ندارند. تعریف شیء میتواند در چندین خط صورت بپذیرد:
مثال
1 var person = {
2 firstName: "John",
3 lastName: "Doe",
4 age: 50,
5 eyeColor: "blue"
6 };
ویژگی های اشیاء
در جاوا اسکریپت به ترکیب مقادیر به صورت نام:مقدار (به انگلیسی: name:value)، ویژگی گفته میشود:
ویژگی | مقدار ویژگی |
---|---|
Firstname یا نام | John |
Lastname یا نام خانوادگی | Doe |
Age یا سن | ۵۰ |
Eyecolor یا رنگ چشم | آبی |
دسترسی به ویژگی های یک شیء
شما میتوانید به ویژگیهای یک شیء به دو روش دسترسی پیدا کنید:
objectName.propertyName
مثال
person.lastName;
یا
objectName["propertyName"]
مثال
person["lastName"];
متدهای شیء
اشیاء نیز متدهایی دارند.
متدها اعمالی هستند که میتوان روی اشیاء انجام داد.
تعریف متدها به صورت ویژگی در اشیاء ذخیره میشوند.
ویژگی | مقدار ویژگی |
---|---|
Firstname یا نام | John |
Lastname یا نام خانوادگی | Doe |
Age یا سن | ۵۰ |
Eyecolor یا رنگ چشم | آبی |
نام کامل | function() {return this.firstName + " " + this.lastName;} |
مثال
1 var person = {
2 firstName: "John",
3 lastName : "Doe",
4 id : 5566,
5 fullName : function() {
6 return this.firstName + " " + this.lastName;
7 }
8 };
کلمه کلیدی this
در یک تابع، کلمهٔ کلیدی this
به «صاحب» تابع اشاره میکند.
در مثال بالا، this
به شیء person اشاره دارد که صاحب تابع fullname
است.
به معنای دیگر، this.firstName
به این معنی است که firstname
ویژگیای از این شیء است.
this
در فصل کلمه کلیدی this در جاوا اسکریپت بخوانید.دسترسی به متدها یا رفتارهای یک شیء
شما میتوانید به متد یک شیء به شیوهٔ (به انگلیسی: syntax) زیر دسترسی پیدا کنید:
objectName.methodName()
مثال
name = person.fullName();
اگرشما از یک متد بدون پرانتز ( ) استفاده کنید، این امر موجب خواهد شد تا کدهای تابع به عنوان خروجی به شما بازگردانده شود:
مثال
name = person.fullName;
رشتههای متنی، اعداد و بولینها را به صورت شیء تعریف نکنید!
زمانی که شما یک متغیر در جاوا اسکریپت را با کلمهٔ کلیدی "new
" تعریف میکنید، این متغیر به صورت یک شیء (به انگلیسی: object) تعریف میشود:
1 var x = new String(); // Declares x as a String object
2 var y = new Number(); // Declares y as a Number object
3 var z = new Boolean(); // Declares z as a Boolean object
بهتر است که از تعریف اشیاء از نوع رشتهای یا متنی String
، از نوع عددی Number
و بولین Boolean
جلوگیری کنید. این امر موجب پیچیدهتر شدن کدها میشود و سرعت اجرای کد شما را نیز کم میکند.
تمرینات جاوا اسکریپت
ساخت نمونه مثال این بخش در دست اقدام است.
منابع آموزشی