توابع سازنده Object

زمان قرارگیری : 13 اردیبهشت 1398
زمان این قسمت : 13:05
برای دسترسی به این دوره نیاز است بصورت نقدی این دوره را خریداری کنید یا با تهیه عضویت ویژه میتوانید به آن دسترسی پیدا کنید.

قیمت دوره 59000 تومان
وضعیت دوره تکمیل شده
زمان کل دوره 07:42:55
تعداد قسمت‌ها 34
نوع دسترسی نقدی یا عضویت ویژه

دسترسی رایگان برای اعضای ویژه

در جاوااسکریپت برای اینکه object جدیدی ایجاد کنیم، میتوانیم از توابع سازنده استفاده کنیم که کمتر شخصی این اسم را در جاوااسکریپت شنیده است . این قابلیت یکی از اصلی ترین قابلیت های جاوااسکریپت است که تقریبا خود جاوااسکریپت بر پایه آن String، Number و ... را بوجود آورده .   

رایگان 09:13
برای دسترسی به این دوره نیاز است بصورت نقدی این دوره را خریداری کنید یا با تهیه عضویت ویژه میتوانید به آن دسترسی پیدا کنید.

قیمت دوره 59000 تومان
وضعیت دوره تکمیل شده
زمان کل دوره 07:42:55
تعداد قسمت‌ها 34
نوع دسترسی نقدی یا عضویت ویژه

دسترسی رایگان برای اعضای ویژه
آفلاین
user-avatar
مدرس دوره حسام موسوی

اول داستان، طراح گرافیک بودم و ۲ سالی به عنوان طراح مشغول بودم، بعد به برنامه‌نویسی علاقمند شدم و الان بیشتر از ۱۰ ساله که عاشق کدزنی و چالش‌های پروژه‌های مختلفم. به تدریس علاقه خاصی دارم و دوست دارم دانشی که در این راه بدست آوردم را در اختیار دیگران هم قرار بدم. 

سوالات و گفتگو‌ها

سوالات و گفتگو‌ها

اگر سوال و مشکلی یا حتی بحثی در یکی از حوزه‌های برنامه‌نویسی دارید این بخش به شما کمک ویژه‌ای خواهد کرد

دورهای پیشنهادی

مشاهده همه دوره ها
آموزش nextjs

آموزش nextjs

در دوره آموزش nextjs قصد داریم به شما دوستان روش کار با nextjs که به عنوان یک فریمورک react شناخته می‌شود را آموزش دهیم. این فریمورک به شما کمک میکند...

دسترسی رایگان برای اعضای ویژه
آموزش typescript

آموزش typescript

TypeScript یک زبان اوپن سورس و رایگان است که توسط مایکروسافت ارائه شده است . زبان TypeScript به عنوان superset زبانJavaScript ارائه شده‌ است و  هدف آن...

دسترسی رایگان برای اعضای ویژه
آموزش پروژه محور Vuex

آموزش پروژه محور Vuex

vuejs به سرعت و به طور باورنکردنی محبوب شده است، به دلیل اینکه بسیار فریم ورک قدرتمندی است و هم فوق العاده ساده برای یاد گیری میباشد.یادگیری فریم ورک ...

دسترسی رایگان برای اعضای ویژه
آموزش پروژه محور و کامل Vuejs 2

آموزش پروژه محور و کامل Vuejs 2

در این دوره 2 Vuejs بصورت کامل و پروژه محور از سطح مقدماتی تا سطح پیشرفته بصورت پروژه محور به شما آموزش داده خواهد شد ، بصورتی که شما بعد از طی کردن ا...

دیدگاه‌ها و پرسش‌ها

برای ارسال نظر لازم است ابتدا وارد سایت شوید
آفلاین
user-avatar
elahe javidi
2 ماه پیش

سلام
آقای موسوی قسمت15واسه من پلی نمیشه اصلا
کلا مشکل داره!؟

آفلاین
user-avatar
حسام موسوی
2 ماه پیش

سلام جلسه رو جایگزین کردیم
لطفا ورژن مرورگر رو افزایش بدید
کش مرورگر تا 7 روز پیش رو پاک کنید و دوباره تست بفرمایید

آفلاین
user-avatar
test-dfd-sd
2 ماه پیش

سلام ، ایراد بزرگی که در آموزش های شما وجود داره ، اینکه خیلی کمتر از واژه های انگلیسی استفاده میکنید ، شما به عنوان یه شخصی که داره به طور حرفه ای تو زمینه برنامه نویسی کار میکنه باید بدونید که تو بازار کار یعنی زمانی که یه شخص میخواد استخدام بشه نمیان بگن کلاس سازنده چیه !!
نظر من فقط مختص به این دوره یا بخش های این دوره نیست و کلی خدمت تون دارم عرض میکنم

فقط یه نکته ای در رابط با آموزش onbject تون توی این دوره بگم
شما سه مدل روش رو یاد دادید ولی اسم اون روش ها رو نگفتید :
literal
instance
constructor

و اینکه راجب مسائل :
JavaScript Encapsulation
JavaScript Polymorphism
و مسائل دیگه صحبت بشه عالیه

در کل تو آموزش ها تون سعی میکنید به اکثر موارد اشاره کنید و اینکار واقعا عالیه ، فقط خواستم نظرم رو بگم که شما زمانی که دارید زحمت میکشید و یه دوره جدیدی رو ضبط و یا باز تولید میکنید این نکات رو هم در نظر داشته باشید،
در کل همیشه کلیت مهم نیست ، هر چه کیفیت بالا تر باشه مطمعنا باز خورد بیشتری خواهید داشت....

آفلاین
user-avatar
حسام موسوی
2 ماه پیش

سلام سپاس از دیدگاهتون استفاده میکنیم برای دوره‌های بعد
ولی نمیدونیم به ساز کی برقصیم یکی میگه فارسی بیشتر بگو یکی مثل شما میگه انگیسی !!!!

آفلاین
user-avatar
test-dfd-sd
2 ماه پیش

مثل این میمونه به مریض یه داروی تلخی رو تجویز کنید و اون بنده خدا بگه این دارو تلخه و بهش شکر اضافه کنید تا شیرین بشه ، ولی اینجوری مطمعنا از اثر گذاری داروتون کمتر میشه

این قضیه هم همینه ، اون دانشجوی که میگه به فارسی نکات مهم رو بگید و شما به عنوان استاد به ساز اون دسته تا الان رقصیدید :) مطمعن یه سری مسائلی رو همراه خودش داشته

به نظر من شما بهتر از جایگاه استادی تصمیم بگیرید نه از جایگاه دانشجوی
موفق باشید

آفلاین
user-avatar
حسام موسوی
2 ماه پیش

قطعا این رو نمیشه مقایسه کرد با مریض و دارو اما همونطور که شما مایلید به نظرتون توجه بشه قطعا دوستان دیگه هم مایلند به نظرشون توجه بشه، من با این حال در دوره‌های جدیدتر سر بر استفاده بیشتر از عنوان‌های انگلیسی دارم به جای فارسی به هر حال
من کاری که باهاش راحتتر باشم و بهش حس بهتری داشته باشم در نهایت انجام میدم و حتما از نظرات شما و مابقی دوستان هم استفاده میکنم
سپاس از مطرح کردن نظرتون

آفلاین
user-avatar
omid zahed
2 ماه پیش

سلام برای من هم پخش نمی شود

آفلاین
user-avatar
حسام موسوی
2 ماه پیش

سلام
مرورگرتون رو بروز بفرمایید و کش مرورگرتون رو پاک کنید و تست بفرمایید

آفلاین
user-avatar

سلام روزتون بخیر.
فکر می‌کنم قسمت 15 مشکل داره و پخش نمی‌شه. کش بروزر رو هم پاک کردم، آپدیت هم کردم اما همچنان پخش نمی‌شه.

آفلاین
user-avatar
حسام موسوی
2 ماه پیش

سلام وقتتون بخیر من تست کردم و بدونه مشکل اجرا شد آیا شما اروری دارید ؟

آفلاین
user-avatar

سلام جناب موسوی، وقتی کیفیت ویدئو رو روی 720 گذاشتم درست شد. روی Auto پخش نمی‌کرد

آفلاین
user-avatar
حسام موسوی
2 ماه پیش

برای من همون auto هم بدونه مشکل کار میکنه

آفلاین
user-avatar

سلام وقت بخیر
قسمت ۱۵ تو سایت مشکل پخش داره لطفا چگ بفرمایید

آفلاین
user-avatar
حسام موسوی
3 ماه پیش

سلام
چه مشکلی ؟
لطفا کش مرورگرتون رو پاک کنید و مرورگرتون رو به ورژن آخر آپدیت بفرمایید

آفلاین
user-avatar

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

آفلاین
user-avatar
حسام موسوی
3 ماه پیش

خیر متاسفانه اسکرین شات ارسال نشد

آفلاین
user-avatar
فرهاد اشتری
3 ماه پیش

آقای موسوی وقتی که ما کد زیر رو داشته باشیم

function Car(){
    this.make = 'Ford';
    this.model = 'Mustang';
    this.year = 1989;
}

و اون رو به صورت یک تابع فراخوانی کنیم:

Car();

کلمه کلیدی this به چی اشاره می کنه؟ شما گفتید در صورتی که این تابع به صورت constructor function استفاده بشه this به instance کنونی اشاره می کنه. ولی در مورد اینکه اگر به صورت یک تابع فراخوانی بشه حرفی نزدید
ممنون میشم راهنمایی کنید منو

آفلاین
user-avatar
حسام موسوی
3 ماه پیش

به شکل تابع صدا بزنید نمیتونید به اون مقدارها دسترسی پیدا کنید اصلا

آفلاین
user-avatar
omid asghari
3 ماه پیش

با سلام

مهندس اگه بخوایم فانکشنی رو که داخل فانکشن سازندمون هست رو صدا بزنیم و به اون فانکشن هم یک مقدار بدهیم مانند همون کاری که برای پراپرتی های make , model انجام دادیم به چه صورت این کار رو باید انجام بدیم ؟

آفلاین
user-avatar
حسام موسوی
3 ماه پیش

به چه فانکشنی مقدار بدید یه مثال بزنید ببینم دقیقا منظورتون چی هست

آفلاین
user-avatar
Ali Vafaei
4 ماه پیش

وقت بخیر استاد من زمانی که index.html رو روی کروم باز میکنم برای اجرا کد مربوط به آبجکت با این پیغام رو به رو میشم و میگه تعریف نشده ممنون میشم راهنمایی بفرمایید.

توضیح تصویر رو وارد کنید

function Car(make , model , year , Horse_Power){
  this.make = make ; 
  this.model = model ;
  this.year = year ;
  this.Horse_Power = Horse_Power;
}
var car1 = new Car(" Mercedes Benz " , " C450 AMG " , 2019 , " 390 HP ");
console.log(car1);
آفلاین
user-avatar
حسام موسوی
4 ماه پیش

من همین کدی که شما فرستادی رو تست کردم و بدونه مشکل داره جواب میده ! کل index.html رو بفرستید

آفلاین
user-avatar
Ali Vafaei
4 ماه پیش

البته روی حرف اول Car که نام constructor function هست نشانگر موس رو میبرم میخواد تبدیل به کلاسش کنه

This constructor function may be converted to a class declaration.ts(۸۰۰۰۲)

اصلا نمی دونم میتونه به این مربوط باشه یا نه

آفلاین
user-avatar
Ali Vafaei
4 ماه پیش
'use strict'

//var a = ۵;
//var b = ۸;

//if (a == ۷ ) {
//    console.log('print ۷');
//}else if (b == ۸) {
  //  console.log('print ۸');
//}else {
  //  console.log("Not Matching");
//}

// 

// var num = ۸;

// switch (true) {
//     case (num == ۹ || num == ۸):
//         console.log('Erfolg');
//         break;
//     case (num < ۱۰):
//     console.log('num < ۱۰');
//     break;
//     case(num >= ۱۰):
//     console.log('ok');
//     break;
//     default:
//         console.log('Wrong');
//         break;
// }

// for(var i = ۱۰۰;i > ۰;i--){
//     console.log(i);
// }

// var a = ۱۰۰;
// while(a > ۰){
//     console.log(a);
//     a--;
// }

// do {
//      console.log('Ali');
// } while (false);

 //var list = [۲,۴,۸,۱۲];
// console.log(list[۳]);
// var list = [۲,۴,۸,۱۲];
// list[۰] = ۷;
// list[۴] = ۱۴;
// console.log(list);

//  var list = [۱,۲,۳,۴,۵,۵۰];
// function sum(array){
//     var total = ۰;
//     for(var i = ۰ ;i < array.length ;i++){
//         total = total + array[i];
//        // console.log(' total : ' + total + ' item : '+array[i]);

//     }
//     return total;

// }

// console.log(sum(list));
// var total = ۰ ;
// var i = ۰ ;
// while (i < array.length) {

//     total = total + array[i];
//     i++;
// }
// return total ;
// }

// console.log(sum(list));
// var list =[۲,۴,۸,۱۰,۱۲];

// function Jam(param){
//   var sum = ۰;
// for(var i = ۰ ; i < param.length ; i++){
//   sum += param[i] 
//   //console.log('  sum : '+ sum +'  Item : '+ param[i]);
//   }
//   return sum;
// }

// console.log(Jam(list));

// var list = [۲,۴,۸,۱۰,۱۲];
// function Jam(param){
//   var sum = ۰;
// param.forEach(function(item){
//   sum += item;
// })
//  return sum;
// }

// console.log(Jam(list));

//var list = [۲,۴,۸,۱۰,۱۲];

// function Jam(array){
//   return array.reduce(function(total,value){
//    console.log(total , value);
//    return total + value;
//    },);

// }

// console.log(Jam(list));

//  var list = [۱,۲,۳,۴,۵];
//  list.push(۱۴);
// // //list.pop();
// // //list.pop();
// // console.log(list.shift());
// // console.log(list.shift());
// // console.log(list.unshift('Reza'));
// // console.log(list.unshift(۸));
// //console.log(list[list.indexOf(۱۰)]);
// //console.log(list);
// //console.log(list.splice(۳,۳));
// //console.log(list.slice(۱,۳));
//  var list۲ = [۶,۷,۸,۹,۱۳];
//  var newlist = list۲.concat(list);
// // //console.log(newlist);
//  newlist.sort(function(a , b){return a-b});
// // var filterlist = newlist.filter(function (item) {
// //         return item % ۲ != ۰ ;
// console.log(newlist);
// var maplist = newlist.map(function(item){
//     return item * ۲ ;
// })

//  console.log(newlist);

// var car = {
//   make : "Audi",
//   model : "Q۵" ,
//   year : ۲۰۱۷,
//   Details :{
//     color : ["Black" , "White" , "Red"]
//   }
// }
// car.make = "Iran";
// console.log(car.make);

// var car۱ = {
//   make : "Ford",
//   model : "Mustang",
//   year : ۱۹۶۹,
// }
// car۱.model = "Focus";
// console.log(car۱)

// var car۲ = new Object()
// car۲.make = "Nissan";
// car۲.model = "GTR";

// console.log(car۲);
function Car(make , model , year , Horse_Power){
  this.make = make ; 
  this.model = model ;
  this.year = year ;
  this.Horse_Power = Horse_Power;
}
//console.log(Car)

 var car۱ = new Car(" Mercedes Benz " , " C۴۵۰ AMG " , ۲۰۱۹ , " ۳۹۰ HP ")
console.log(car۱);

// var car۲ = new Car(" Porsche " , " Boxter " , ۲۰۱۸ , " ۳۶۰ HP ") ;
//  console.log(car۲);
آفلاین
user-avatar
حسام موسوی
4 ماه پیش

برای من بدونه هیچ مشکلی نتیجه درست برمیگردنه همین کدتون رو فقط اجرا کردم

آفلاین
user-avatar
baaniber
4 ماه پیش

سلام وقتتون بخیر
من با استفاده از توابع سازنده چند تا آبجکت ساختم حالا میخوام اون آبجکت ها رو به صورت یک لیست برگردونم
پیشنهاد شما چیه؟ چیکار میتونم بکنم؟

آفلاین
user-avatar
حسام موسوی
4 ماه پیش

متوجه نشدم لطفا سوالتون رو به همراه کد توضیح بدید

آفلاین
user-avatar
baaniber
4 ماه پیش
function Videos(title, pic, url, id) {
this.title = title,
this.pic = pic,
this.url = url,
this.id = id
}

const video_۱ = new Videos('This is first video', 'MyPic.jpg', 'MyVideo.mp۴', ۱);
const video_۲ = new Videos('This is second video', 'MyPic۱.jpg', 'MyVideo۱.mp۴', ۲);
const video_۳ = new Videos('This is third video', 'MyPic۲.jpg', 'MyVideo۲.mp۴', ۳);

const videosList = [video_۱, video_۲, video_۳];

من با استفاده از توابع سازنده آبجکت ها ۳ تا آبجکت ساختم و میخواستم این آبجکت ها رو به صورت یه لیست برگردونم و اونها رو به صورت یه لیست در آوردم برای این کار
کار درستی هست این کار؟

آفلاین
user-avatar
حسام موسوی
4 ماه پیش

از چه نظر کار درستیه ؟ بستگی داره شما بخواید چیکار کنید اصلا
هدفتون از این کار چی باشه

آفلاین
user-avatar
Hamidreza jahandideh
10 ماه پیش

سلام
کسانی که از این دوره استفاده میکنن باید افراد مبتدی باشن.یعنی نهایتا html و css رو بلدباشن که زبان نشانه گذاری هست و جاوااسکریپت اولین زبان برنامه نویسی هست که اموزش میبینن.
سرعت شما تو بیان مطالب(صحبت کردن تند.کار با موس و برنامه هاو...) بالاس و خیلی جاهارو متوجه نمیشم و باید چندبار نگاه کنم یا برم جاهای دیگه مطالب مرتبط رو مطالعه تا متوجه منظور شما بشم.
به عنوان یک پیشنهاد عرض کردم این رو.
یه جاهایی واقعا نمیشه ارتباط گرفت با مطالبی که میفرمایید.

آفلاین
user-avatar
حسام موسوی
10 ماه پیش

سلام از حدود چند هزار نفری که در همین چند ماهی که این دوره رو شروع کردیم و تموم کردیم از این دوره استفاده کردن تنها شما چنین نظری ثبت کردید !
اتفاقا در این دوره ما سعی کردیم جلسات کوتاه باشه ! توضیحات جامع‌تر باشه و موارد از سطح مقدماتی به خوبی گفته بشه که به نظر چنین اتفاقی افتاده با توجه به نظرات ! اینکه شما چنین چیزی میفرمایید جای تعجب شخص خودم هست !
ممکنه شما اصلا سلیقه آموزش دیدنتون با دوره‌های ما سازگار نباشه که همون ابتدا چند دوره رایگان در سایت قرار دادیم و همینطور جلسات رایگان برای دوره‌های که قبل از شروع میتونستید این مورد رو چک کنید .
شخص خودم از این دوره به شدت راضی هستم و مطمئنن دوره‌ای بهتری از این دوره در حوزه جاوااسکریپت در ایران هنوز کسی کار نکرده قطعا !
البته سپاس از نظرتون اگر مشکلی باشه ما سعی میکنیم حلش کنیم برای همین هم هست که این دومین یا سومین باره که بر اساس اطلاعات جدید این دوره بازتولید شده !

آفلاین
user-avatar
علیرضا حمید
11 ماه پیش

سلام.
من چجوری میتونم 4 اصل مهم شی گرایی رو پیاده سازی کنم با استفاده از جاوااسکریپت ؟
1- Encapsulation
2- Polymorphism
3- Inheritance
4- Abstraction

ایا راهی وجود داره ؟ تا جایی که پیش رفتم فقط ارث بری بود جاواسکریپت!!!
مثلا توی کلاس ها ما قابلیت Access modifire نداریم . متد public و پراپرتی private و ...
یا مثلا اینترفیس و ابسترکت کلاس نداریم .

مقاله ؟ منبع ؟ جای هست که این چیزا رو بصورت ابداعی و ترفندی پیاده سازی کرده باشن ؟

آفلاین
user-avatar
حسام موسوی
11 ماه پیش

سلام مسئله شی گرایی در جاوااسکریپت هنوز کامل نشده . بخشی از این داستان شی گرایی در اکمااسکریپت 6 اضافه شده که میتونید در دوره مربوطه در سایت مشاهده کنید اما باید بگم کاستی‌های در این مورد داره که امید هست در ورژن‌های بعدی اکمااسکریپت برطرف بشه و بحث شی گرایی کامل‌تر بشه اما تا اون زمان میتونید از Typescript هم استفاده کنید که موضوع شی‌گرایی در JS رو کاملتر کرده

آفلاین
user-avatar
علیرضا حمید
11 ماه پیش

حیف شد ولی خب از دوره خوب تایپ اسکریپت راکت استفاده خواهم کرد تا شی گرایی را عمیق شم توش .

آفلاین
user-avatar
محمدمهدی دشتی
1 سال پیش

سلام.

function car(model, age, color) {
    this.model = model;
    this.age = age;
    this.color = color;
}
var car1 = new car("pride", 2002, "blue");
console.log(car1);

یه چندتا سوال دارم:
چرا از return تو تابع استفاده نکردیم مگه return باعث نمیشه که تابع خروجی بده؟
بعد این که الان این this مگه برا این استفاده نمیشه که یه شی تعریف میکنیم بعدش تو این شی از یه تابع استفاده میکنیم میخوایم این چیزایی که تو همین شی تعریف کردیم تو تابع استفاده کنیم از این this استفاده میکنیم ما که از قبل چیزی تعریف نکردیم ، چطوریه ؟؟من متوجه نمیشم:((

var car1 = car("pride", 2002, "blue").create;

چرا از خط بالا نمیشه برا ساخت شی تو این مثال استفاده کرد؟
خیلی خیلی تشکر

آفلاین
user-avatar
حسام موسوی
1 سال پیش

سلام سوالتون دقیقا نشون دهنده اینکه این جلسه رو با دقت ندیدید. الان این دیگه یک تابع معمولی نیست این یک تابع سازنده یک Object هست .
و اینکه در جلسه توابع هم گفتیم در توابع همیشه نیاز به return نداریم گاهی فقط وظیفه انجام یک عمل رو بر عهده دارن.
قشنگ ده بار در همین جلسه گفتم که تابع سازنده یک تابعی هست که وظیفه ایجاد یک Object رو بر عهده داره همین .
من جای گفت شما از چیزی مثل car("pride", 2002, "blue").create استفاده کنید ؟ این create از کجا اومده اصلا !!