تعاریف شیء

از ویکی‌کد، دانشنامهٔ برنامه‌نویسی
پرش به ناوبری پرش به جستجو
Main Page Tutorial
JavaScript-menu.png
موارد آموزشی
فرم‌ها در جاوا اسکریپت
اشیاء در جاوا اسکریپت
تابع در جاوا اسکریپت
HTML DOM در جاوا اسکریپت
Browser BOM در جاوا اسکریپت
AJAX در جاوا اسکریپت
JSON در جاوا اسکریپت
جی‌کوئری در برابر جاوا اسکریپت
مرجع جاوا اسکریپت

اشیاء دنیای واقعی، ویژگی ها و متدها

در زندگی واقعی، اتومبیل یک شیء است. [۱]

یک اتومبیل ویژگی‌هایی مانند: وزن و رنگ دارد و متدها یا رفتارهایی مانند روشن شدن و خاموش شدن دارد:

شیء ویژگی متد یا رفتار
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)، نوشته می‌شوند (نام و مقدار به وسیلهٔ یک : از یکدیگر جدا می‌شوند).

اشیاء در جاوا اسکریپت محلی برای ذخیرهٔ مقادیر نام دار که ویژگی (به انگلیسی: properties) یا متد یا رفتار نامیده می‌شوند، استفاده می‌شود.

تعریف شیء در جاوا اسکریپت

شما می‌توانید یک شیء را همانند مثال زیر تعریف کنید. (یا بسازید)

مثال

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 جلوگیری کنید. این امر موجب پیچیده‌تر شدن کدها می‌شود و سرعت اجرای کد شما را نیز کم می‌کند.

شما در فصول آینده مطالب بیشتری را در مورد اشیاء در این آموزش خواهید آموخت.

تمرینات جاوا اسکریپت

Time2wait.svg ساخت نمونه مثال این بخش در دست اقدام است.



منابع آموزشی