با عرض سلام خدمت کاربران محترم سایت پی وی لرن.
در این جلسه قصد داریم تا با اشیا در جاوا اسکریپت و متد ها در جاوا اسکریپت اشنا شویم.
هر شئ object در جاوا اسکریپت دارای پروپرتی Properties (متغیر) ها و متد هایی (تابع) می باشد.
در زندگی واقعی اتومبیل یک شئ است.
یک اتومبیل ویژگی هایی مانند وزن و رنگ دارد و متد هایی مانند استارت و ترمز.
Methods | Properties | object |
()car.start ()car.drive ()car.broke ()car.stop | car.name = Fiat car.model = 500 car.weight = 850kg car.color = white |
تمام ماشین ها ویژگی های یکسانی دارند اما مقادیر این ویژگی ها در هر ماشین متفاوت است.
تمام ماشین ها متد های یکسانی دارند اما کارهایی که این متد ها انجام می دهد در هر ماشین متفاوت است.
اشیا مانند متغیر ها عمل می کنند با این تفاوت که تعداد زیادی از مقادیر را می توانند در خود ذخیره کنند.
این کد یک مقدار ساده (Fiat) را به یک متغیر به نام car اختصاص می دهد:
اشیاء متغیر هستند. اما اشیا می توانند مقدار زیادی داشته باشند.
این کد مقادیر زیادی (فیات، ۵۰۰، سفید) را به یک متغیر با نام ماشین اختصاص می دهد:
فضاهای و خطوط شکسته مهم نیستند. تعریف آبجکت می تواند در چند خط انجام شود :
1 2 3 4 5 6 | var person = { firstName:"John", lastName:"Doe", age:50, eyeColor:"blue" }; |
مقادیر به صورت جفت های name:value نوشته می شوند که با , از یکدیگر جدا می شوند.
جای خالی space و خطوط line breaks در هنگام تعریف مهم نیستد:
1 2 3 4 5 6 | var person = { firstName:"John", lastName:"Doe", age:50, eyeColor:"blue" }; |
خصوصیت name:values در اشیاء جاوا اسکریپت به نام خواص هستند:
خصوصیت | ویژگی Value |
---|---|
firstName | John |
lastName | Doe |
age | ۵۰ |
eyeColor | blue |
از دو روش می توانیم به پروپرتی های یک شئ دسترسی داشته باشیم:
1 | objectName.propertyName |
یا
1 | objectName["propertyName"] |
مثال-۱
مثال-۲
اشیا همچنین می توانند متد هایی نیز داشته باشند.
متد ها اعمالی هستند که می توانند روی اشیا انجام شوند.
متد ها مانند پروپرتی ها در اشیا دخیره می شوند.
متد ها در واقع توابعی هستند که به عنوان properties ذخیره می شوند.
خوصصیت | مقدار خصوصیت |
---|---|
firstName | John |
lastName | Doe |
age | ۵۰ |
eyeColor | blue |
fullName | function() {return this.firstName + ” ” + this.lastName;} |
مثال:
1 2 3 4 5 6 7 8 | var person = { firstName: "John", lastName : "Doe", id : 5566, fullName : function() { return this.firstName + " " + this.lastName; } }; |
در تعریف یک تابع، this به صاحب تابع اشاره می کند.
در مثال بالا this یک شئ person که دارای تابع fullName می باشد، است.
به عبارت دیگر، this.firstName به معنی اشاره به پروپرتی firstName از این شئ می باشد.
می توانید به صورت زیر به متد های یک شد دسترسی پیدا کنید:
1 | objectName.methodName() |
اگر به یک متد بدون پرانتزها() دسترسی پیدا کنید، تعریف تابع را باز می گرداند:
در جاوا اسکریپت هنگامی که یک متغیر را با کلمه کلیدی new تعریف کنید، در واقع آن را به عنوان یک شئ تعریف کرده اید:
1 2 3 | var x = new String(); // Declares x as a String object var y = new Number(); // Declares y as a Number object var z = new Boolean(); // Declares z as a Boolean object |
اما از این کار بپرهیزید زیرا سرعت اجرای کد و عملکرد برنامه را کاهش می دهد.
جلسه اشیا در جاوا اسکریپت و متد ها در جاوا اسکریپت نیز به پایان رسید.
erfan
سلام .
خداقوت بابت اموزشای خوبتون
خواستم بپرسم با میانگین روزی ۵ ساعت چقدر طول میکشه ک جاوااسکریپت و ب طورکلی فرانت اند رو کامل و در حد حرفه ای یاد بگیرم؟
و اینکه مسیر پیشنهادی شما چیه برای اموزش و یادگیری.
خیلی ممنون
صادق
سلام. ممنون
یادگیری خیلی به خود شخص وابسته هست و نمیشه نسخه کلی و زمان داد که در عرض چه مدت مسلط خواهید شد. اما شما با این تعداد ساعت احتمالا بتونید حدود یه ماه شاید کمتر نحو یا قواعد زبان جاوا اسکریپت رو یاد بگیرید. البته این سوای از فریم ورک ها است. در کل تا زمانی که شما درگیر پروژه نشید نمی تونید چیز خاصی رو یاد بگیرید چون در یک پروژه با چالش های واقعی رو به رو خواهید شد. بنابراین پیشنهاد من اینه که پس از یاد گرفتن زبان و فریم ورک ها برای خودتون پروژه تعریف کنید و انجام بدید. اگه ایده ای ندارید می تونید در گوگل برای ایده ی پروژه جستجو کنید. همچنین می تونید توی پروژه های متن باز هم مشارکت کنید.
حمید
سپاسگزارم از آموزش های کوتاه و مفیدتون.
اگه ویدیو آموزش ها رو بشه تولید کنید خیلی میتونه به پیشرفت افرادی مث من سرعت بیشتری ببخشه که تازه در شروع مسیر یادگیری هستیم.