ساختمانکنندگان شی JavaScript
- صفحه قبلی وصولکنندگان شیء JS
- صفحه بعدی پروتوتایپهای شیء JS
مثال
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 منطقیدر این فصل یاد میگیرید که چرا نباید مقادیر منطقی را به عنوان شیء ایجاد کنید.
- صفحه قبلی وصولکنندگان شیء JS
- صفحه بعدی پروتوتایپهای شیء JS