آبجکت های جاوااسکریپت و جزئیات آن‌ها!

آبجکت های جاوااسکریپت و جزئیات آن‌ها!
انواع داده‌های (data type) هسته‌ی جاوااسکریپت ( بیشترین استفاده یا بنیادی ترین بخش) از نوع آبجکت (شیء) هستند.
پیچیده ترین نوع داده‌های (data type) جاوااسکریپت، آبجکت‌ها هستند و پنج نوع داده‌ی ساده داره که به شرح زیر هستند :
Number, String, Boolean, Undefined, Null
خرید شارژ ایرانسل
خرید شارژ ایرانسل، همراه اول، رایتل | خرید بسته های اینترنت ایرانسل | etore.ir
ردیاب
ردیاب آهنربایی پیام بهترین وسیله برای ردیابی وسیله نقلیه 09121394944
ردیاب
ردیاب آهنربایی پیام بهترین وسیله برای ردیابی وسیله نقلیه 09121394944
خودتان را اینجا معرفی کنید

در ادامه مقاله کلمه‌ی "نوع داده" رو با نام "دیتاتایپ" مینویسم :|
تفاوت این دو دیتاتایپ (آبجکت و ساده) در اینه که دیتاتایپ‌های ساده تغییر ناپذیرند ولی دیتاتایپ‌های آبجکت تغییر پذیرند و زمانیکه آبجکت تغییر کند تغییر داده می‌شوند. (شاید کمی مبهم باشه براتون که در ادامه مقاله متوجه منظورم خواهید شد)

مفهوم و تعریف آبجکت (شی‌ء) چیست؟!

یک آبجکت لیستی غیرسفارشی از دیتاتایپ های اولیه ( و گاهی اوقات ارجاعی) هستند که به صورت جفت‌های "نام-مقدار" ذخیره می‌شوند. هر آیتم از این لیست رو یک ویژگی (property) می‌نامند ( در توابع به نام متد میشناسیمشون).
یک مثال ساده از آبجکت‌ها :

var myFirstObject = {firstName: "MajidOnline", website: "majidonline.com"}
اگر کمی در مورد آبجکت‌ها فکر کنید متوجه میشید که هر آیتم از یک لیست که property گفته می‌شوند به صورت جفت‌های نام-مقدار ذخیره می‌شوند. که در مثال فوق نام‌های property‌ها شامل : firstName , website  و مقدارها شامل : Majidonline , majidonline.com می‌باشند.
نام propertyها میتونه به صورت رشته و یا عدد باشه ، که اگر به صورت عدد باشه هنگامیکه میخواهیم اون رو فراخوانی کنیم حتما باید از براکت استفاده کنیم :

برای مثال :
var ageGroup = { 15 : "Children" , 25:"young",100:"very old"}
console.log(ageGroup.30); // Error!!!
console.log(ageGroup.["15"]); // Children

به عنوان یک جاوااسکریپت دولوپر شما همیشه از دیتاتایپ‌ها گاهی وقت‌ها برای ذخیره‌ی اطلاعات و گاهی وقت‌ها برای ساخت متدها و توابع خود استفاده خواهید کرد.

داده‌های از نوع ارجاع و اولیه Reference Data Type and Primitive Data Types

تفاوت اصلی بین داده‌های از نوع ارجاع (Reference) و اولیه (Primitive) در این است که مقدار دیتاتایپ‌های ارجاع به عنوان یک مرجع ذخیره میشن و مقدار اونها از طریق متغیر قابل تغییر نیست و مستقیم درون متغیر ذخیره نمی‌شوند! ولی دیتاتایپ‌های اولیه میتونند تغییر کنند ، به عنوان مثال :
Var person = "Mekaeil";
Var anotherPerson = person;
Person = "Reza";
Console.log(anotherPerson); // Mekaeil
Console.log(person); // Reza
دقت کنید که در این مثال هیچ اشتباهی رخ نداده و با تغییر مقدار متغیر person  به مقدار Reza هنوزم وقتی متغیر anotherPerson  رو  چاپ میکنیم مقدار اول رو چاپ میکنه و مقدار جدیدی که به متغیر person دادیم باعث نمیشه مقدار anotherPerson  تغییر کنه!

در مقایسه، دیتاتایپ‌های اولیه (Primitive) به صورت مقادیر قابل تغییر ذخیره خواهند شد برای مثال :
 
var person = {name : "Mekaeil"}
var anotherPerson = person;
person.name = "Ali";
 
console.log(anotherPerson.name); // Ali
console.log(person.name); // Ali
همانطور که میبینید ما آبجکت person  رو درون متغیر anotherPerson  ذخیره کردیم ولی دقت کنید که این مقدار به عنوان یک داده واقعی و غیرقابل تغییر ذخیره نشده است و هر بار که اون رو فراخوانی می‌کنیم به مرجع خودش اشاره میکنه و مقدار رو از اونجا فراخوانی میکنه.

ساخت آبجکت :

دو راه معمول برای ساخت آبجکت وجود داره :

1 - Object Literals

یکی از رایجترین و براستی راحتترین راه ساخت آبجکت استفاده از این شیوه می‌باشد :
//this is empty object
var firstTry = {};
 
//this is an Object with 4 item
var majidonline = {
color : "red",
website : "majidonline",
CEO : "Majid Alavizadeh",
 
sayMajid : function(){
      console.log("MajidOnline.com"); 
  } 
}

2 - Object Constructor ( آبجکت سازنده )

دومین راه معمول برای ساخت آبجکت استفاده از این روش آبجکت سازنده می‌باشد. این روش معمولا بیشتر در توابع مورد استفاده قرار می‌گیرد.
 
var majidonline   = new Object();
majidonline.color = "red";
majidonline.website = "majidonline.com";
majidonline.CEO  = "Majid Alavizadeh";
majidonline.sayMajid = function(){
    console.log("Majidonline.com"); 
}

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


امیدوارم مفید بوده باشه wink

میکائیل اندیشه هستم، چند سالی میشه در حوزه Front-End کار میکنم و بیشتر علاقه ی من در زمینه برنامه نویسی JavaScript , jQuery و تکنولوژی های مرتبط هست و فعلا نیز در این حوزه مطالعه میکنم ... :)

نظرات و سوالات کاربران

ارسال پاسخ reza
reza
یکشنبه ۰۳ بهمن ۱۳۹۵ ۱۵:۰۰
سلام منظور از کد یعنی چی :
Date.setFullyear=function();
از چه روشی استفاده کرده؟