hody.ir

10-کار با object type یا شی در جاوااسکریپت | هودی | آموزشای متنی

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

دوره ی 0 تا 100 جاوااسکریپت جلسه ی 10

سلام در مقالات قبلی با معنی و مفهوم فانکشن آشنا شدیم . در این مقاله می پردازیم به بحث آبجکت ها و همچنین به مفهوم آبجکت ها می پردازیم.

قبل از شروع اصطلاحات به کار رفته در مقاله رو مینویسم :

پراپرتی —> property

متد —> method

شی یا آبجکت —> object

تو در تو —> nesting

مفهوم آبجکت

شیء مجموعه‌ای از داده‌ها و/یا کارکردهای مرتبط است که معمولاً شامل چند متغیر و تابع هستند. این متغیرها و تابع‌ها وقتی داخل شیء هستند، مشخصات و متدها نامیده می‌شوند.

ساخت یک آبجکت

ساخت یک آبجکت یا شی با مثال:

var hody = {
    name : "hody.ir",
    age : "3month",
    hello(params) {
        params = this.name;
        console.log("salam aghaye "+params);
    }
}

توضیحات:

  1. در اینجا دوتا پراپرتی ساختیم یکیش name و یکیش age.
  2. علامت دونقطه در اینجا حکم مساوی را دارد.
  3. سپس به هر key یک value دادیم.
  4. سپس با کاما هر پراپرتی را از دیگری جدا کردیم.
  5. سپس یک متدی ساختیم به اسم hello این متد کارش درخواست یک ورودی هست که ما در داخلش گفتیم که هر مقداری به سمت این تابع پاس بشه تو متغییر params رو همیشه مقدارشو برامون با مقدار همین پراپرتی name قرار بده.
  6. سپس اونو با یه متن کنارش لاگ گرفتیم.

دستیابی به یک پراپرتی یا متد

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

//شیوه ی دستیابی به یک پراپرتی
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);
}

توضیحات:

  1. یک آبجکت ساختیم به اسم hody.
  2. سه تا پراپرتی با مقادیر استرینگی ساختیم.
  3. با حلقه ی for گفتیم که در داخل آبجکت گردش کنه و واسمون پراپرتی هارو در sam ذخیره کنه.
  4. سپس با کنسول هر بار که یک پراپرتی در sam ذخیره میشه رو چاپ میکنیم.
5 1 vote
Article Rating
Subscribe
اطلاع از
guest
0 Comments
Inline Feedbacks
View all comments