ساختمان‌کنندگان شی JavaScript

مثال

function Person(first, last, age, eye) {
    این.firstName = first;
    این.lastName = last;
    این.age = age;
    this.eyeColor = eye;
}

آزمایش کنید

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

نوع شیء (آماده‌سازی) (کلاس)

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

گاهی اوقات نیاز داریم که بسیاری از اشیاء مشابه "نوع" راآماده‌سازی”.

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

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

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

var myFather = new Person("Bill", "Gates", 62, "blue");
var myMother = new Person("Steve", "Jobs", 56, "green");

آزمایش کنید

this واژه کلیدی

در JavaScript، this اشیاء مربوط به کد را

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

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

لطفاً توجه کنید this این یک متغیر نیست. یک کلمه کلیدی است. نمی‌توانید مقدار this را تغییر دهید.

افزودن ویژگی‌ها به شیء

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

مثال

myFather.nationality = "English";

آزمایش کنید

ویژگی جدید به myFather اضافه شده است. نه myMother و نه هیچ person دیگری.

افزودن توابع به شیء

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

مثال

myFather.name = function () {
    return this.firstName + " " + this.lastName;
};

آزمایش کنید

توابع جدید به myFather اضافه شده است. نه myMother و نه هیچ person دیگری.

افزودن ویژگی‌ها به توابع سازنده

متفاوت از اضافه کردن ویژگی‌های جدید به شیء موجود، نمی‌توانید ویژگی‌های جدیدی به توابع سازنده اضافه کنید:

مثال

Person.nationality = "English";

آزمایش کنید

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

مثال

توابع Person(first, last, age, eyecolor) {
    این.firstName = first;
    این.lastName = last;
    این.age = age;
    این.eyeColor = eyecolor;
    این.nationality = "English";
}

آزمایش کنید

به این ترتیب ویژگی‌های شیء می‌توانند مقادیر پیش‌فرض داشته باشند.

افزودن توابع به توابع سازنده

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

مثال

توابع Person(first, last, age, eyecolor) {
    این.firstName = first;
    این.lastName = last;
    این.age = age;
    این.eyeColor = eyecolor;
    این.name = function() {return this.firstName + " " + this.lastName;};
}

آزمایش کنید

متفاوت از اضافه کردن توابع جدید به شیء موجود، نمی‌توانید توابع جدیدی به توابع سازنده اضافه کنید.

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

مثال

توابع Person(firstName, lastName, age, eyeColor) {
    این.firstName = firstName;  
    این.lastName = lastName;
    این.age = age;
    این.eyeColor = eyeColor;
    این.changeName = function (name) {
        این.lastName = name;
    };
}

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

حالا می‌توانید امتحان کنید:}

myMother.changeName("Jobs");

آزمایش کنید

با استفاده از myMother جایگزین کنید this،JavaScript می‌تواند شخص فعلی را که در حال پردازش است را تشخیص دهد.

ساخته‌های داخلی JavaScript

JavaScript سازنده‌ای برای اشیاء اولیه ارائه می‌دهد:

مثال

var x1 = new Object();    // یک شیء جدید Object
var x2 = new String();    // یک شیء جدید String
var x3 = new Number();    // یک شیء جدید Number
var x4 = new Boolean();   // یک شیء جدید Boolean
var x5 = new Array();     // یک شیء جدید Array
var x6 = new RegExp();    // یک شیء جدید RegExp
var x7 = new Function();  // یک شیء جدید Function
var x8 = new Date();      // یک شیء جدید Date

آزمایش کنید

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

آیا می‌دانید؟

همانطور که در بالا مشاهده می‌کنید، JavaScript نسخه‌ای از داده‌های اولیه به صورت رشته، عدد و حقیقی ارائه می‌دهد. اما هیچ دلیلی برای ایجاد اشیاء پیچیده وجود ندارد. مقادیر اولیه سریع‌تر هستند!

لطفاً از نمونه نمونه‌ای استفاده کنید {} جایگزین کنید new Object().

لطفاً از نمونه رشته‌ای استفاده کنید "" جایگزین کنید new String().

لطفاً از نمونه عددی جایگزین کنید Number().

لطفاً از نمونه حقیقی جایگزین کنید new Boolean().

لطفاً از نمونه نمونه آرایه استفاده کنید [] جایگزین کنید new Array().

لطفاً از عبارت نمونه مدل جایگزین کنید new RexExp().

لطفاً از عبارت تابع استفاده کنید () {} جایگزین کنید new Function().

مثال

var x1 = {};            // یک شیء جدید
var x2 = "";            // جدیدترین رشته اولیه
var x3 = 0;             // جدیدترین عدد اولیه
var x4 = false;         // جدیدترین منطق اولیه
var x5 = [];            // شیء جدید آرایه
var x6 = /()/           // شیء جدید عبارت منظم
var x7 = function(){};  // شیء جدید تابع

آزمایش کنید

شیء رشته

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

اما می‌توانید از new کلمات کلیدی برای ایجاد شیء رشته‌ای: var firstName = new String("Bill")

لطفاً در JS رشتهدر این فصل یاد می‌گیرید که چرا نباید مقادیر رشته‌ای را به عنوان شیء ایجاد کنید.

شیء عدد

به طور معمول، مقادیر عددی به عنوان مقادیر اولیه ایجاد می‌شوند: var x = 456

اما می‌توانید از new کلمات کلیدی برای ایجاد شیء عددی: var x = new Number(456)

لطفاً در JS عدددر این فصل یاد می‌گیرید که چرا نباید مقادیر عددی را به عنوان شیء ایجاد کنید.

شیء بولین

به طور معمول، مقادیر منطقی به عنوان مقادیر اولیه ایجاد می‌شوند: var x = false

اما می‌توانید از new کلمات کلیدی برای ایجاد شیء منطقی: var x = new Boolean(false)

لطفاً در JS منطقیدر این فصل یاد می‌گیرید که چرا نباید مقادیر منطقی را به عنوان شیء ایجاد کنید.