زبان برنامه نویسی جاوا اسکریپت از آن دسته از زبان های برنامه نویسی است که همه چیز در آن به اشیا یا همان object ها بستگی دارد، در واقع شی در جاوا اسکریپت حرف اول را میزند. اگر قصد برنامه نویسی با استفاده از جاوا اسکریپت را دارید باید با شی در جاوا اسکریپت آشنا شوید. در این مطلب قصد داریم کمی بیشتر درباره شی گرایی در جاوا اسکریپت صحبت کنیم.
اگر شما هم به مباحث جاوا اسکریپت علاقه مند هستید پیشنهاد می کنیم در دوره آموزش جاوا اسکریپت سون لرن شرکت کنید
انواع object در جاوا اسکریپت
به صورت کلی شی در جاوا اسکریپت را می توان به صورت زیر دسته بندی کرد:
متغیرهای بولی در جاوا اسکریپت در واقع یک شی در جاوا اسکریپت هستند، به صورت کلی تمامی داده های اولیه از جمله متغیرهای بولی، متغیرهای عددی، متغیرهای رشته ای و ... یک شی در جاوا اسکریپت محسوب می شوند. متغیر تاریخ همواره یک شی است، متغیرهای ریاضی یا همان Math در جاوا اسکریپت یک شی به شمار می آیند، regular expression همواره یک شی هستند، آرایه ها شی محسوب می شوند، توابع یک شی در جاوا اسکریپت هستند، خود Object ها یک شی در جاوا اسکریپت محسوب می شوند.

یک مثال از تعریف شی در جاوا اسکریپت
اگر قصد دارید با تعریف یک شی در جاوا اسکریپت آشنا شوید، بهتر است مثال زیر را در نظر بگیرید:
<script>
Var person = “ John Doe” ;
Document.getElementById( “demo” ).innerHTML = person ;
</script>اشیا را نیز می توان به عنوان متغیر در جاوا اسکریپت در نظر گرفت، با این تفاوت که شی می تواند چندین مقدار را در خود نگه دارد و مقادیر را به صورت جفت های name: value نوشته می شود. یا به عنوان مثالی دیگر قطعه کد زیر را در نظر بگیرید:
<script>
Var person = {
first Name: “John” ,
last Name: “Doe” ,
age: 50,
eye Color: “blue”
};
Document.getElementById( “demo” ).innerHTML = person.firstName + “ “ + person.lastName;
</script>Property های یک شی در جاوا اسکریپت
یک شی می تواند چندین خواص یا property داشته باشد، در واقع این خواص، خاصیت هایی هستند که به یک شی متصل شده اند و شما با استفاده از این اشیا می توانید به همین خواص دسترسی داشته باشید. برای دسترسی به خواص یک شی در زبان برنامه نویسی جاوا اسکریپت چند روش وجود دارد که در ادامه برخی از این روش ها را بیان می کنیم.
یکی از این روش ها دسترسی به خواص یک شی از طریق دات یا همان نقطه می باشد، برای این کار می توان دستور زیر را در نظر گرفت:
ObjectName.propertyبه عنوان مثال person.age
روش دیگر برای این کار استفاده از براکت می باشد، برای انجام این کار دستور زیر را در نظر بگیرید:
objectName[ “property” ]به عنوان یک مثال از این دستور person[ “age”] را در نظر گرفت.
روش آخر برای دسترسی به یک خاصیت از طریق یک شی در جاوا اسکریپت می توان دستور زیر را در نظر گرفت:
objectName[expression]برای یک مثال از این دستور می توان مثال زیر را در نظر گرفت:
X= “age” ; person[x]استفاده از حلقه ها برای مشخصات یک شی در جاوا اسکریپت
یکی دیگر از خصوصیت های فوق العاده ای که یک شی در جاوا اسکریپت دارد این است که می توانید یک شی را مشخص کنید و تمامی Property های آن را از طریق یک حلقه فور بدست بیاورید. ساختار نگارشی این دستور به شکل زیر می باشد:
for( variable in object) {
code to be executed }این کد به ازای هر خاصیتی که که در شی باشد یک بار اجرا می شود و شما می توانید به این خاصیت دسترسی داشته باشید، برای این که بهتر با این مفهوم آشنا شوید می توانید مثال زیر را در نظر بگیرید:
Var person = { name: “John” , name: “Does” , age:25};
for (x in person) {
txt += preson[x] ;
}افزودن و حذف یک شی در جاوا اسکریپت
اگر قصد اضافه کردن یک ویژگی و خاصیت جدید به شی خود را دارید می توانید به صورت زیر این کار را انجام دهید، فرض کنید شی person را دارید:
Person.nationality = “English” ;اگر قصد دارید یک ویژگی و خاصیت را از مجموعه خاصیت های یک شی حذف کنید نیز می توانید به صورت زیر این کار را انجام دهید:
var person = {firstName: “john” , lastName: “Doe” , age: 50, eyeColor: “blue” };
delete person.age; // or delete person[“age”];چگونه یک شی در جاوا اسکریپت بسازیم؟
یکی از برترین ویژگی های جاوا است که می توانی یک شی برای خود بسازید و از آن استفاده کنید، راه های گوناگونی برای ساخت یک شی در جاوا اسکریپت وجود دارد که در ادامه این مطلب سه مورد از آن ها را بررسی خواهیم کرد:
یکی از روش های ایجاد یک شی در جاوا اسکریپت استفاده از object literal برای این کار است، روش دیگر استفاده از کلید واژه new است و روش آخر نیز استفاده از کانستراکتور می باشد. استفاده از object literal برای ساخت یک شی جدید به صورت زیر است:
<script>
Var person = { firstName: “john” , lastName: “Doe” , age: 50, eyeColor: “blue” } ; Document.getElementById( “demo” ).innerHTML = Person.firs Name + “ is “ + person.age + “ years old.” ;
</script>حال برای ایجاد یک شی با استفاده از کلید واژه new نیز به طریق زیر عمل می کنیم:
<script>
Var person = new Object( );
Person.first Name = “John” ;
Peson.last Name = “Doe” ;
Person.age = 50;
Person.eye Color = “blue” ;
Document.getElementById( “demo” ).innerHTML = Person.firstName + “ is “ + person.age + “ years old. “ ;
</script>در واقع دو روش گفته شده هر دو یک کار خاص را انجام می دهند و فقط نحوه انجام آن ها متفاوت می باشد.

ساخت شی در جاوا اسکریپت با استفاده از object constructor
در دو روشی که قبلا گفتیم شما فقط می توانید هر دفعه یک شی بسازید ولی در این روش یاد می گیرید که با ساخت یک object type اشیا بسیار زیادی را بسازید.
<script>
Function person(first, last, age, eye) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.eye Color = eye;
}
Var my Father = new person ( “ John ”, “ Doe ” , 50, “ blue ”);
Var myMother = new peron ( “ Sally ”, “ Rally ”, 48, “ green ”);
Document.getElementById ( “ demo ” ).innerHTML = “My father is “ + my Father.age + “ . My mother is “ + my Mother.age; </script>جمعبندی
در این مقاله دیدیم که «شیء» (Object) هستهی اصلی زبان جاوااسکریپت است و تقریباً تمام اجزای این زبان—از دادههای اولیه گرفته تا آرایهها، توابع و حتی خود Object—به نوعی با مفهوم شیء گره خوردهاند. شیء در جاوااسکریپت این امکان را میدهد که چندین مقدار مرتبط را در قالب property و بهصورت ساختاریافته نگهداری کنیم و به روشهای مختلفی (دات، براکت و expression) به آنها دسترسی داشته باشیم.
همچنین با استفاده از حلقهها میتوان تمام ویژگیهای یک شیء را پیمایش کرد و در صورت نیاز، propertyهای جدیدی به آن افزود یا برخی را حذف نمود. در ادامه، روشهای مختلف ساخت شیء بررسی شد: استفاده از object literal، کلیدواژهی new و در نهایت object constructor که امکان ساخت چندین شیء مشابه را فراهم میکند.
در مجموع، درک صحیح مفهوم شیء و شیگرایی در جاوااسکریپت، پایهی نوشتن کدهای منظمتر، قابلنگهداریتر و حرفهایتر است و بدون تسلط بر این مفهوم، پیشرفت جدی در برنامهنویسی جاوااسکریپت عملاً ممکن نخواهد بود.
عالی
&lt;h1&gt;خوب بود&lt;/h1&gt;