شی سازنده (Constructor) در JavaScript
یادگیری JavaScriptfunction 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";
}
مشاهده مثالشما نمیتوانید یک روش جدید را به سازنده شی اضافه کنید همانطور که روش جدیدی را به یک شی موجود اضافه می کنید.
افزودن روش ها به یک شیء باید در داخل تابع سازنده انجام شود:
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 از () {} استفاده کنید
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 در جاوا اسکریپت مراجعه کنید.
نظر شما
>