به نام خدا با سلام خدمت کد ایتی های عزیز. در ادامه سری مقالات اموزشی جاوا اسکریپت این جلسه به تفاوت میان تابع و متد و سازنده در جاوا اسکریپت خواهيم پرداخت با ما همراه باشید.
اگر در برنامه نویسی شی گرا تجربه داشته باشید. احتمالاً عادت کرده اید که در مورد توابع، متدها و سازنده کلاس به عنوان سه چیز متمایز فکر کنید. با این حال، در جاوا اسکریپت، آنها به سادگی سه راه جایگزین برای استفاده از یک مفهوم هستند.
برنامه نويسي شي گرا
تابع
functions: ساده ترین کاربردهای فراخوانی تابع
1 2 3 4 5 |
function helloWorld(name) { return "hello world, " + name; } helloWorld("JS"); // "hello world JS" |
در جاوا اسکریپت، توابعی که ویژگی های شی هستند، روش هایی هستند که به آنها متد گفته می شود.
1 2 3 4 5 6 7 |
var obj = { helloWorld : function() { return "hello world, " + this.name; }, name: 'John' } obj.helloWorld(); // // "hello world John" |
توجه داشته باشید که helloWorld چگونه به این Obj اشاره می کند. اتریبیوت ها در اینجا، واضح است؟ یا ممکن است قبلاً متوجه شده باشید؟ که این موضوع به شی گره خورده است. با این حال، جنبه جالب این است که ما می توانیم یک مرجع به یک تابع، helloWorld، را در یک شی متفاوت کپی کنیم و نتیجه متفاوتی داشته باشیم. خواهیم دید:
1 2 3 4 5 |
var obj2 = { helloWorld : obj.helloWorld, name: 'John' } obj2.helloWorld(); // "hello world John" |
ممکن است کنجکاو باشید که در طول فراخوانی متد در این زمینه چه اتفاقی میافتد. در این مثال، خود عبارت نحوه پیوند را مشخص میکند. با شی گیرنده obj2، عبارت ()obj2.helloWorld خاصیت helloWorld شی obj را فراخوانی می کند.
سازنده ها سومین کاربرد توابع هستند. سازنده ها با تابع تعریف می شوند، درست مانند تابع و متد.
1 2 3 4 5 6 7 8 |
function Employee(name, age) { this.name = name; this.age = age; } var emp1 = new Employee('John Doe', 28); emp1.name; // "John Doe" emp1.age; // 28 |
برخلاف فراخوانیهای متد و تابع، یک فراخوان سازنده مانند new Employee (“John Doe”، 28) یک شی کاملاً جدید تولید میکند. آن را به عنوان مقدار آن ارسال میکند و به طور ضمنی شی جدید را به عنوان نتیجه برمیگرداند.
مقداردهی اولیه شی وظیفه اصلی سازنده است.
زیاد درگیر اصطلاحات نشوید. درعوض، سعی کنید معنی هر عبارت را بفهمید. تا در طول زمان، ایده خوبی از اینکه ?اشیاء، توابع، متدها و سازنده های شما در کجا قرار دارند و چگونه با هم تعامل دارند، داشته باشید.
خب دوستان عزیز به پايان جلسه تفاوت میان تابع و متد و سازنده در جاوا اسکریپت رسيديم اميدواريم مورد توجه شما واقع قرار گيرد.
دیدگاهتان را بنویسید