JavaScript:اشیاء (object) در جاوااسکریپت
نسخهای که میبینید نسخهای قدیمی از صفحهاست که توسط Admin (بحث | مشارکتها) در تاریخ ۹ آبان ۱۳۹۸، ساعت ۱۱:۴۴ ویرایش شده است. این نسخه ممکن است تفاوتهای عمدهای با نسخهٔ فعلی بدارد. |
محتویات
اشیاء دنیای واقعی، ویژگیها و متدها
در زندگی واقعی، اتومبیل یک شیء است. [۱]
یک اتومبیل ویژگیهایی مانند: وزن و رنگ دارد و متدها یا رفتارهایی مانند روشن شدن و خاموش شدن دارد:
شیء | ویژگی | متد یا رفتار |
---|---|---|
![]() |
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"};
Spaces and line breaks are not important. An object definition can span multiple lines:
فاصلههای خالی و فاصلهٔ بین خطوط در هنگام تعریف شیء در جاوااسکریپت اهمیتی ندارند. تعریف شیء میتواند در چندین خط صورت بپذیرد:
مثال
var person = {
firstName: "John",
lastName: "Doe",
age: 50,
eyeColor: "blue"
};
ویژگیهای اشیاء
در جاوااسکریپت به ترکیب مقادیر به صورت نام:مقدار (به انگلیسی: 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;} |
![]() | یک متد یک تابع است که به صورت یک ویژگی ذخیره شده است. |
مثال
var person = {
firstName: "John",
lastName : "Doe",
id : 5566,
fullName : function() {
return this.firstName + " " + this.lastName;
}
};
کلمه کلیدی this
در یک تابع، کلمهٔ کلیدی
به «صاحب» تابع اشاره میکند.
this
در مثال بالا،
به شیء person اشاره دارد که صاحب تابعthis
است.
fullname
به معنای دیگر،
به این معنی است کهthis.firstName
ویژگیای از این شیء است.
firstname
شما میتوانید مطالب بیشتری را در مورد کلمه کلیدی
در فصل کلمه کلیدی this در جاوااسکریپت بخوانید.
this
دسترسی به متدها یا رفتارهای یک شیء
You access an object method with the following :
شما میتوانید به متد یک شیء به شیوهٔ (به انگلیسی: syntax) زیر دسترسی پیدا کنید:
objectName.methodName()
مثال
name = person.fullName();
اگرشما از یک متد بدون پرانتز () استفاده کنید، این امر موجب خواهد شد تا کدهای تابع به عنوان خروجی به شما بازگردانده شود:
مثال
name = person.fullName;
رشتههای متنی، اعداد و بولینها را به صورت شیء تعریف نکنید.!
زمانی که شما یک متغیر در جاوااسکریپت را با کلمهٔ کلیدی "
" تعریف میکنید، این متغیر به صورت یک شیء (به انگلیسی: object) تعریف میشود: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
بهتر است که از تعریف اشیای از نوع رشتهای یا متنی
، از نوع عددیString
و بولینNumber
جلوگیری کنید. این امر موجب پیچیدهتر شدن کدها میشود و سرعت اجرای کد شما را نیز کم میکند.
Boolean
![]() | شما در فصول آینده مطالب بیشتری را در مورد اشیاء در این آموزش خواهید آموخت. |
منابع آموزشی