تعاریف شیء

از موتو کد، دانشنامهٔ برنامه‌نویسی


اشیاء دنیای واقعی، ویژگی ها و متدها[ویرایش | ویرایش]

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

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

شیء ویژگی متد یا رفتار
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"};


مشاهدهٔ نتیجه


فاصله‌های خالی و فاصلهٔ بین خطوط در هنگام تعریف شیء در جاوا اسکریپت اهمیتی ندارند. تعریف شیء می‌تواند در چندین خط صورت بپذیرد:

مثال[ویرایش | ویرایش]

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 به «صاحب» تابع اشاره می‌کند.

در مثال بالا، this به شیء person اشاره دارد که صاحب تابع fullname است.

به معنای دیگر، this.firstName به این معنی است که firstname ویژگی‌ای از این شیء است.

شما می‌توانید مطالب بیشتری را در مورد کلمه کلیدی this در فصل کلمه کلیدی this در جاوا اسکریپت بخوانید.

دسترسی به متدها یا رفتارهای یک شیء[ویرایش | ویرایش]

شما می‌توانید به متد یک شیء به شیوهٔ (syntax) زیر دسترسی پیدا کنید:

objectName.methodName()

مثال[ویرایش | ویرایش]

name = person.fullName();


مشاهدهٔ نتیجه


اگرشما از یک متد بدون پرانتز ( ) استفاده کنید، این امر موجب خواهد شد تا کدهای تابع به عنوان خروجی به شما بازگردانده شود:

مثال[ویرایش | ویرایش]

name = person.fullName;


مشاهدهٔ نتیجه


رشته‌های متنی، اعداد و بولین‌ها را به صورت شیء تعریف نکنید![ویرایش | ویرایش]

زمانی که شما یک متغیر در جاوا اسکریپت را با کلمهٔ کلیدی "new" تعریف می‌کنید، این متغیر به صورت یک شیء (object) تعریف می‌شود:

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

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

تمرینات جاوا اسکریپت[ویرایش | ویرایش]

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



منابع آموزشی[ویرایش]