آبجکت های جاوااسکریپت و جزئیات آنها!
پیچیده ترین نوع دادههای (data type) جاوااسکریپت، آبجکتها هستند و پنج نوع دادهی ساده داره که به شرح زیر هستند :
Number, String, Boolean, Undefined, Null
خرید ورق گالوانیزه رنگی
خرید ورق گالوانیزه با بهترین قیمت و کیفیت
خرید ورق گالوانیزه با بهترین قیمت و کیفیت
خرید آی پی ثابت
ارزان ترین و معتبرترین سایت خرید آی پی ثابت
ارزان ترین و معتبرترین سایت خرید آی پی ثابت
بستنی خشک
بهترین بستنی خشک فریز درایر در طعم های متنوع و کاملا بهداشتی
بهترین بستنی خشک فریز درایر در طعم های متنوع و کاملا بهداشتی
پرینتر استوک اچ پی
خرید انواع پرینتر استوک HP با ضمانت + مشاوره تخصصی
خودتان را اینجا معرفی کنید
خرید انواع پرینتر استوک HP با ضمانت + مشاوره تخصصی
در ادامه مقاله کلمهی "نوع داده" رو با نام "دیتاتایپ" مینویسم :|
تفاوت این دو دیتاتایپ (آبجکت و ساده) در اینه که دیتاتایپهای ساده تغییر ناپذیرند ولی دیتاتایپهای آبجکت تغییر پذیرند و زمانیکه آبجکت تغییر کند تغییر داده میشوند. (شاید کمی مبهم باشه براتون که در ادامه مقاله متوجه منظورم خواهید شد)
مفهوم و تعریف آبجکت (شیء) چیست؟!
یک آبجکت لیستی غیرسفارشی از دیتاتایپ های اولیه ( و گاهی اوقات ارجاعی) هستند که به صورت جفتهای "نام-مقدار" ذخیره میشوند. هر آیتم از این لیست رو یک ویژگی (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");
}
امیدوارم مفید بوده باشه
نظرات و سوالات کاربران
console.log(ageGroup.["15"]); // Children
در واقع سایت هدف مثلا endsite.com هست اما لینک های مختلفی از این سایت توی صفحه سایت من به نمایش در میاد و حالا میخوام به صورت تصادفی و خودکار کاربران سایتم به اون صفحات هدایت بشن . تقریبا چیزی شبیه به خوراک RSS . ممنون میشم راهنمایی کنید .
Date.setFullyear=function();
از چه روشی استفاده کرده؟