021-28423015

شی سازنده (Constructor) در JavaScript

شی سازنده
function Person(first, last, age, eye) {
    this.firstName = first;
    this.lastName = last;
    this.age = age;
    this.eyeColor = eye;
}
مشاهده مثال

بهتر است که اولین حرف توابع سازنده را با یک حرف بزرگ بزنید.

انواع شی (طرح ها) (کلاس ها)

نمونه هایی از فصل های قبلی محدود هستند. آنها فقط اشیای تک ایجاد می کنند.

گاهی اوقات ما نیاز به "طرح" برای ایجاد بسیاری از اشیاء از همان نوع " داریم.

روش ایجاد یک "نوع شی"، این است که از یک تابع سازنده(Constructor) شی استفاده کنید.

در مثال بالا، تابع ()Person یک تابع سازنده (Constructor)شی است.

اشیاء همان نوع با فراخوانی تابع سازنده با کلمه کلیدی new ایجاد می شوند:

انواع شی
var myFather = new Person("John", "Doe", 50, "blue");
var myMother = new Person("Sally", "Rally", 48, "green");
مشاهده مثال

کلیدواژه this

در جاوا اسکریپت، چیزی که this نامیده می شود، جسم است که دارای کد است.

مقدار this، زمانی که در یک شی مورد استفاده قرار می گیرد، خود شیء است.

در تابع سازنده this مقداري ندارد این یک جایگزین برای شی جدید است. هنگامی که یک شی جدید ایجاد می شود، مقدار this به شی جدید تبدیل می شود.

نکته: توجه داشته باشید که this یک متغیر نیست. این کلمه کلیدی است. شما نمی توانید مقدار this را تغییر دهید.

اضافه کردن یک ویژگی به یک شی

افزودن یک ویژگی جدید به یک شیء موجود آسان است:

اضافه کردن یک ویژگی به یک شی
 myFather.nationality = "English"; 
مشاهده مثال

ویژگی به MyFather اضافه خواهد شد. نه به myMother

اضافه کردن یک متد به یک شی

افزودن یک متد جدید به یک شیء موجود آسان است:

اضافه کردن یک متد به یک شی
myFather.name = function () {
    return this.firstName + " " + this.lastName;
};
مشاهده مثال

این روش به MyFather اضافه خواهد شد. نه به myMother

اضافه کردن یک ویژگی به یک سازنده(Constructor)

شما نمیتوانید یک ویژگی جدید را به شی سازنده(Constructor) اضافه کنید همانطور که یک ویژگی جدید را به یک شی موجود اضافه می کنید:

اضافه کردن یک ویژگی
 Person.nationality = "English"; 
مشاهده مثال

برای افزودن یک ویژگی جدید به یک سازنده، باید آن را به تابع سازنده (constructor)اضافه کنید:

اضافه کردن به تابع سازنده
function Person(first, last, age, eyecolor) {
    this.firstName = first;
    this.lastName = last;
    this.age = age;
    this.eyeColor = eyecolor;
    this.nationality = "English";
}
مشاهده مثال

به این ترتیب خواص شیء می توانند مقادیر پیش فرض داشته باشند.

اضافه کردن یک متد به سازنده(Constructor)

تابع سازنده شما همچنین می تواند روش ها را تعریف کند:

اضافه کردن به تابع سازنده
function Person(first, last, age, eyecolor) {
    this.firstName = first;
    this.lastName = last;
    this.age = age;
    this.eyeColor = eyecolor;
    this.nationality = "English";
}
مشاهده مثال

شما نمیتوانید یک روش جدید را به سازنده شی اضافه کنید همانطور که روش جدیدی را به یک شی موجود اضافه می کنید.

افزودن روش ها به یک شیء باید در داخل تابع سازنده انجام شود:

function Person(firstName, lastName, age, eyeColor) {
this.firstName = firstName;
this.lastName = lastName;
this.age = age;
this.eyeColor = eyeColor;
this.changeName = function (name) {
this.lastName = name;
};
}

تابع ()changeName مقدار نام را به ویژگی lastName شخص اختصاص می دهد.

اضافه کردن یک متد به سازنده
function Person(first, last, age, eyecolor) {
    this.firstName = first;
    this.lastName = last;
    this.age = age;
    this.eyeColor = eyecolor;
    this.name = function() {return this.firstName + " " + this.lastName;};
}
مشاهده مثال

ساخته شده در Constructor جاوا اسکریپت

جاوا اسکریپت برای اشیاء بومی ساخته شده است:

افزودن روش ها به یک شیء در داخل تابع
 myMother.changeName("Doe"); 
مشاهده مثال

شیء ()Math در فهرست نیست. ()Math یک شیء سراسری است. کلمه کلیدی new را نمی توان در ()Math استفاده کرد.

آیا می دانید؟

همانطور که می بینید ، جاوا اسکریپت دارای نسخه های شی از انواع داده های اولیه است String، Number، و Boolean. اما هیچ دلیلی برای ایجاد اجزای پیچیده وجود ندارد. مقادیر اولیه بسیار سریعتر است.

بنابراین:

به جای ()Object از {} استفاده کنید

به جای ()String از "" استفاده کنید

به جای ()Number از 1234 استفاده کنید

به جای ()Boolean از true / false استفاده کنید

به جای ()Array از [] استفاده کنید

به جای ()RegExp از /()/ استفاده کنید

به جای ()Function از () {} استفاده کنید

ساخته شده در Constructor جاوا اسکریپت
 var x1 = new Object();    // A new Object object
var x2 = new String();    // A new String object
var x3 = new Number();    // A new Number object
var x4 = new Boolean();   // A new Boolean object
var x5 = new Array();     // A new Array object
var x6 = new RegExp();    // A new RegExp object
var x7 = new Function();  // A new Function object
var x8 = new Date();      // A new Date object 
مشاهده مثال

اشیاء رشته

به طور معمول، رشته ها به صورت اولیه ایجاد می شوند: var firstName = "John"

اما رشته ها همچنین می توانند به عنوان اشیاء با استفاده از کلید واژه new ایجاد شوند: var firstName = new String("John")

برای درک بیشتر میتواند به درس رشته در جاوا اسکریپت مراجعه کنید.

اشیا اعداد

به طور معمول، اعداد به عنوان زیرمجموعه ایجاد می شوند: var x = 123

اما اعداد نیز می توانند به عنوان اشیاء با استفاده از کلمه کلیدی new ایجاد شوند: var x = new Number(123)

برای درک بیشتر میتواند به درس اعداد در جاوا اسکریپت مراجعه کنید.

اشیاء بولی

به طور معمول، booleans به صورت اولیه ایجاد می شود:

اما booleans همچنین می تواند به عنوان اشیا با استفاده از کلمه کلیدی new ایجاد شود:

برای درک بیشتر میتواند به درس Boolean در جاوا اسکریپت مراجعه کنید.


نظر شما

لطفا نام و نام خانوادگی خود را وارد کنید
لطفا ایمیل خود را وارد کنید لطفا ایمیل صحیح وارد کنید.
لطفا متن نظر خود را وارد کنید
>

یادگیری JavaScript

مقالات و دروس

عضویت در خبرنامه شرکت نرم افزاری وب مهراز

برای اطلاع از بسته ها ، تخفیف های استثنایی و تازه های ما به خبرنامه وب مهراز بپیوندید.

لطفا شماره همراه صحیح وارد کنید.
لطفا ایمیل صحیح وارد کنید.

مقالات مرتبط