٪۴۰ تخفیف تابستانه شروع شد! بزرگترین حراج سال ما

به ما بپیوندید

آموزش سازندگان اشیا Java جاوا اسکریپت

مثال function Person(first, last, age, eye) { this.firstName = first; this.lastName = last; this.age = age; this.eyeColor = eye; } این عمل خوب در نظر گرفته می شود که توابع سازنده را با حرف اول بزرگ بنامید. انواع اشیا (طرح…

محمد یوسفی

26 جولای 2021

مثال

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

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


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

مثالهای فصلهای گذشته محدود است. آنها فقط اشیا single منفرد ایجاد می کنند.

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

راه ایجاد “نوع شی” ، استفاده از عملکرد سازنده شی است .

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

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

const myFather = new Person("John", "Doe", 50, "blue");
const myMother = new Person("Sally", "Rally", 48, "green");

این کلید واژه

در جاوا اسکریپت ، چیزی که فراخوانی thisمی شود ابژه ای است که کد را “در اختیار دارد”.

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

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

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


افزودن یک خاصیت به یک شی

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

مثال

myFather.nationality = "English";

این ویژگی به myFather اضافه خواهد شد. نه به مادر من (به شخص دیگری اعتراض نمی کند).


افزودن یک روش به یک شی

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

مثال

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

این روش به myFather اضافه خواهد شد. نه به مادر من (به شخص دیگری اعتراض نمی کند).


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

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

مثال

Person.nationality = "English";

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

مثال

function Person(first, last, age, eyecolor) {
  this.firstName = first;
  this.lastName = last;
  this.age = age;
  this.eyeColor = eyecolor;
  this.nationality = "English";
}

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


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

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

مثال

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;
  };
}

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

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

مثال

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 شخص اختصاص می دهد.

اکنون می توانید امتحان کنید:

myMother.changeName("Doe");

جاوا اسکریپت با “جایگزینی” این مورد با myMother می داند که در مورد کدام شخص صحبت می کنید .


سازندگان جاوا اسکریپت داخلی

جاوا اسکریپت سازنده داخلی برای اشیا native بومی دارد:

new String()    // A new String object
new Number()    // A new Number object
new Boolean()   // A new Boolean object
new Object()    // A new Object object
new Array()     // A new Array object
new RegExp()    // A new RegExp object
new Function()  // A new Function object
new Date()      // A new Date object

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


آیا می دانید؟

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

""به جای استفاده از کلمات کلیدی رشته ای new String().

تعداد استفاده از لیترال 50به جای new Number().

استفاده از الفاظ boolean true / falseبه جای new Boolean().

استفاده از شی لیترال {}به جای new Object().

[]به جای استفاده از کلمات کلیدی آرایه new Array().

الگوی استفاده از لیترال /()/به جای new RegExp().

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

مثال

let x1 = "";             // new primitive string
let x2 = 0;              // new primitive number
let x3 = false;          // new primitive boolean

const x4 = {};           // new Object object
const x5 = [];           // new Array object
const x6 = /()/          // new RegExp object
const x7 = function(){}; // new function

اشیا ring رشته ای

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

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

بیاموزید که چرا رشته ها نباید به عنوان شی در فصل JS رشته ها ایجاد شوند .


تعداد اشیا Number

به طور معمول ، اعداد به صورت ابتدایی ایجاد می شوند: x = 30

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

بدانید که چرا در فصل JS Numbers نباید اعداد به عنوان شی ایجاد شوند .


اشیا ole بولی

به طور معمول ، booleans به عنوان ابتدایی ایجاد می شود: x = false

اما booleans را می توان با استفاده از newکلمه کلیدی به عنوان اشیا نیز ایجاد کرد :
x = new Boolean(false)

بیاموزید که چرا Booleans نباید به عنوان شی در فصل JS Booleans ایجاد شود .

منبع

مطالب مرتبط

0 0 رای ها
امتیازدهی به مقاله
اشتراک در
اطلاع از
guest
0 نظرات
بازخورد (Feedback) های اینلاین
مشاهده همه دیدگاه ها