10-کار با object type یا شی در جاوااسکریپت

سلام در مقالات قبلی با معنی و مفهوم فانکشن آشنا شدیم . در این مقاله می پردازیم به بحث آبجکت ها و همچنین به مفهوم آبجکت ها می پردازیم.
قبل از شروع اصطلاحات به کار رفته در مقاله رو مینویسم :
پراپرتی —> property
متد —> method
شی یا آبجکت —> object
تو در تو —> nesting
مفهوم آبجکت
شیء مجموعهای از دادهها و/یا کارکردهای مرتبط است که معمولاً شامل چند متغیر و تابع هستند. این متغیرها و تابعها وقتی داخل شیء هستند، مشخصات و متدها نامیده میشوند.
ساخت یک آبجکت
ساخت یک آبجکت یا شی با مثال:
var hody = {
name : "hody.ir",
age : "3month",
hello(params) {
params = this.name;
console.log("salam aghaye "+params);
}
}
توضیحات:
- در اینجا دوتا پراپرتی ساختیم یکیش name و یکیش age.
- علامت دونقطه در اینجا حکم مساوی را دارد.
- سپس به هر key یک value دادیم.
- سپس با کاما هر پراپرتی را از دیگری جدا کردیم.
- سپس یک متدی ساختیم به اسم hello این متد کارش درخواست یک ورودی هست که ما در داخلش گفتیم که هر مقداری به سمت این تابع پاس بشه تو متغییر params رو همیشه مقدارشو برامون با مقدار همین پراپرتی name قرار بده.
- سپس اونو با یه متن کنارش لاگ گرفتیم.
دستیابی به یک پراپرتی یا متد
حال برای دستیابی و استفاده از پراپرتی ها یا متد های این آبجکت باید به شیوه ی زیر عمل کنیم:
//شیوه ی دستیابی به یک پراپرتی
hody.name
//شیوه ی دستیابی به یک متد
hody.hello();
حال نباید در حین فراخوانی آرگومانی به سمت متد hello بفرستیم البته بفرستیم هم مشکلی نداره ولی آخرش هر چی باشه مقدار params برابر با مقدار پراپرتی name می شود.
تغییر value یک پراپرتی
برای تغییر value یک پراپرتی در بیرون از آبجکت با فرض اینکخ آبجکت مورد نظرمون همون آبجکت hody است به صورت زیر عمل میکنیم:
//شیوه ی تغییر دادن مقدار یک پراپرتی
hody.name = "oursite";
//sam ذخیره پراپرتی در متغییر
var sam = hody.name;
//لاگ گرفتن گرفتن از متغییر برای مشاهده نتیجه کار
console.log(sam);
حذف یک پراپرتی در آبجکت
برای حذف یک پراپرتی از آبجکت باید از کلیدواژه ی delete استفاده کنیم.
مثال (با فرض اینکه آبجکت مد نظر آبجکت hody است) :
delete hody.name;
var sam = hody.name;
console.log(sam);
خوب با استفاده از کلمه کلیدی delete تونستیم پراپرتی name را از آبجکت hody حذف کنیم.
حال با لاگ گرفتن از پراپرتی name باید برامون undefind چاپ بشه.
اشیا تودرتو (nesting)
یک پراپرتی در یک آبجکت میتواند یک آبجکت دیگر باشد!
مثال:
var hody = {
name : "hody.ir",
age : "3month",
article : {
number : "100",
Category : ["js","php","py","css3","html5"]
}
}
این همان آبجکت قبلی است با این تفاوت متد hello رو حرف کردیم و سپس یک پراپرتی ساختم از نوع شی با نام article داخل این شی دوتا پراپرتی دیگه داریم اولین پراپرتی number است و دومین پراپرتی category است که خودش یک آرایه است.
خوب الان مثلا بخوایم به ایندکس صفرم آرایه ی category رو بدست بیاریم:
var sam = hody.article.Category[0];
console.log(sam);
گردش در یک آبجکت
برای گردش در یک آبجکت میتوانیم از حلقه ی for استفاده کنیم مثال:
var hody = {
name : "hody.ir",
age : "3month",
country : "iran"
}
for(sam in hody){
console.log(sam);
}
توضیحات:
- یک آبجکت ساختیم به اسم hody.
- سه تا پراپرتی با مقادیر استرینگی ساختیم.
- با حلقه ی for گفتیم که در داخل آبجکت گردش کنه و واسمون پراپرتی هارو در sam ذخیره کنه.
- سپس با کنسول هر بار که یک پراپرتی در sam ذخیره میشه رو چاپ میکنیم.
https://hody.ir/?p=1113
برای کپی کلیک کنید.مهدی صمدیان برنامه نویسی از میاندوآب می باشد . وی دانش آموز بوده و به طراحی قالب سایت وردپرسی علاقه دارد، همچنین به چندین نرم افزار در حوزه های مختلف مسلط می باشد و اوقات فراغتش را با برنامه نویسی تحت وب و ساخت و پیاده سازی الگوریتم های ریاضی می گذارند.