آموزش دوره جامع پروتوتایپ‌های جاوا اسکریپت ۲۰۲۵ - آخرین آپدیت

دانلود JavaScript Prototypes 2025 – The Complete Course

نکته: ممکن هست محتوای این صفحه بروز نباشد ولی دانلود دوره آخرین آپدیت می باشد.
نمونه ویدیوها:
توضیحات دوره: به‌روزرسانی شده در می ۲۰۲۵. این دوره اکنون دارای قابلیت Coursera Coach است! روشی هوشمندتر برای یادگیری با گفتگوهای تعاملی و لحظه‌ای که به شما کمک می‌کند تا دانش خود را آزمایش کنید، مفروضات را به چالش بکشید و در حین پیشروی در دوره، درک خود را عمیق‌تر کنید. در این دوره جامع، بر مفاهیم بنیادی و ظرافت‌های سیستم ارث‌بری پروتوتایپی (Prototypal Inheritance) در جاوا اسکریپت مسلط شوید. شما درکی عمیق از نحوه مدیریت ایجاد شیء، ارث‌بری و زنجیره پروتوتایپ توسط جاوا اسکریپت به دست خواهید آورد و مهارت‌های عملی برای نوشتن کدهای بهینه و مقیاس‌پذیرتر را کسب خواهید کرد. دوره با معرفی مفاهیم کلیدی مانند ارث‌بری پروتوتایپی، لینک‌های پنهان [[Prototype]] و نحوه تعامل اشیاء و توابع با این ساختارها آغاز می‌شود. سپس، الگوهای نمونه‌سازی شامل مدل‌های تابعی، شبه‌کلاسیک و مدل‌های مبتنی بر کلاس ES6 را بررسی کرده و نحوه پیاده‌سازی و بهینه‌سازی آن‌ها را از طریق مثال‌های عملی خواهید آموخت. در ادامه، به پیچیدگی‌های ویژگی .prototype، دسترسی __proto__ و نقش آن‌ها در ایجاد زنجیره‌های پروتوتایپ مستحکم می‌پردازید. این دوره شامل یک پروژه عملی برای ایجاد سیستم‌های ارث‌بری چندسطحی با استفاده از berbagai رویکردهای مدرن جاوا اسکریپت است. همچنین مدل مبتنی بر پروتوتایپ جاوا اسکریپت را با زبان‌های مبتنی بر کلاس و تکنیک‌های ترکیب (Composition) مقایسه خواهید کرد. این دوره برای توسعه‌دهندگان متوسط جاوا اسکریپت که به دنبال تعمیق دانش خود در برنامه‌نویسی شی‌گرا در جاوا اسکریپت هستند، ایده‌آل است. داشتن درک پایه‌ای از سینتکس و توابع جاوا اسکریپت توصیه می‌شود. اگر با اشیاء و توابع راحت هستید اما می‌خواهید در ارث‌بری و پروتوتایپ‌ها استاد شوید، این دوره برای شماست.

سرفصل ها و درس ها

مقدمه Introduction

  • ارث‌بری پروتوتایپی Prototypal Inheritance

  • تمامی اشیاء دارای [[Prototype]] هستند All objects have a [[Prototype]]

  • اشیاء [[Prototype]] متفاوتی وجود دارند There are different [[Prototype]] objects

  • توابع خاص هستند Functions are special

  • در جاوا اسکریپت، اشیاء حاکم هستند In JavaScript, objects rule the roost

  • مثال از یک پروژه فرضی Hypothetical project example

شیء [[Prototype]] The [[Prototype]] object

  • تمامی اشیاء دارای ویژگی [[Prototype]] هستند All objects have a [[Prototype]] property

  • پروتوتایپ پنهان است The [[Prototype]] is hidden

  • چرا [[Prototype]] یک ویژگی داخلی است Why is the [[Prototype]] an internal property

  • تقریباً همه چیز در جاوا اسکریپت از اینترفیس Object ارث‌بری می‌کند Almost everything in JavaScript inherits from the Object interface

  • مقادیر اولیه و Wrapperهای شیء Primitive values and object wrappers

  • ایجاد یک شیء "اولیه" با استفاده از Constructor Creating an object "primitive", using a constructor

  • مقادیر اولیه: بازگشت به عقب Primitives - taking a step back

  • ایجاد یک [[Prototype]] سفارشی Creating a custom [[Prototype]]

  • مثال تنظیم پروتوتایپ‌ها Setting prototypes example

  • پروتوتایپ یک شیء Literal به .prototype سازنده آن اشاره می‌کند The prototype of an object literal will point to its constructor's ".prototype"

  • اصطلاحات تخصصی توسعه‌دهندگان Developers jargon

  • متدهای ارث‌بری شده Inherited methods

  • زنجیره پروتوتایپ The prototype chain

  • مثالی از زنجیره پروتوتایپ A prototype chain example

  • پروتوتایپ در نهایت به null اشاره می‌کند The prototype will eventually point to null

  • محدودیت‌های پروتوتایپ The prototype has limitations

  • پوشاندن (Shadowing) ویژگی‌ها و متدهای ارث‌بری شده Shadowing inherited properties and methods

  • پروتوتایپ بر مقدار THIS تأثیر نمی‌گذارد The prototype does not affect the value of THIS

  • حلقه زدن روی اشیاء Looping through objects

  • ویژگی‌های قابل شمارش (Enumerable) Enumerable properties

  • متدهای تکرار (Iterating) Iterating methods

  • هشدار: پروتوتایپ را در حین اجرا تغییر ندهید Warning - don't change the prototype on the fly

  • هشدار: با اشیاء پروتوتایپ داخلی ور نروید Warning - don't mess with in-built prototype objects

  • خلاصه Summary

الگوهای نمونه‌سازی Instantiation Patterns

  • اشیاء Literal Object Literals

  • الگوهای نمونه‌سازی Instantiation Patterns

  • نمونه‌سازی تابعی Functional Instantiation

  • نقاط ضعف نمونه‌سازی تابعی Shortcomings of functional instantiation

  • نمونه‌سازی تابعی مشترک Functional Shared Instantiation

  • نمونه‌سازی پروتوتایپی: مقدمه Prototypal Instantiation - Introduction

  • متد Object.create() Object.create()

  • مثال نمونه‌سازی پروتوتایپی Prototypal Instantiation - example

  • توضیح نمونه‌سازی پروتوتایپی Prototypal Instantiation - explained

  • نمونه‌سازی شبه‌کلاسیک: مقدمه Pseudoclassical Instantiation - intro

  • مثال نمونه‌سازی شبه‌کلاسیک Pseudoclassical Instantiation - example

  • هشدار: نمی‌توانید همه چیز را به پروتوتایپ اضافه کنید Warning: you can't add everything to the prototype

  • ترکیب ارث‌بری و سازنده‌ها Combining inheritance and constructors

  • سینتکس Arrow نمی‌تواند به عنوان سازنده استفاده شود Arrow syntax cannot be used as a constructor

  • نمونه‌سازی مبتنی بر کلاس Class Instantiation

معرفی __proto__ (یا dunder proto) __proto__ (aka: dunder proto)

  • مقدمه‌ای بر __proto__ __proto__ introduction

  • Dunder proto یک ویژگی داخلی نیست Dunder proto is not an internal property

  • استفاده از __proto__ تا حدودی منسوخ شده است (Annex B) __proto__ is partly deprecated, in Annex B

  • جایگزین‌های مدرن برای دریافت و تنظیم پروتوتایپ شیء Modern alternatives to getting & setting an object's prototype

  • یک گام به عقب Take a step back

  • مشکل اول: __proto__ به راحتی قابل پیکربندی است Problem #1: __proto__ is easily configurable

  • مشکل دوم: __proto__ یک کلمه کلیدی خاص است Problem #2: __proto__ is a special keyword

  • تنظیم پروتوتایپ یک شیء روی null Setting an object's prototype to null

  • خلاصه __proto__ Summary of __proto__

ویژگی .prototype The .prototype property

  • فقط توابع دارای ویژگی .prototype هستند Only functions have a .prototype property

  • برخی توابع ویژگی .prototype ندارند Some functions do not have a .prototype property

  • چرا توسعه‌دهندگان با کلمه "prototype" گیج می‌شوند Why developers get confused with the word "prototype"

  • ویژگی .prototype فقط برای توابع سازنده اهمیت دارد The .prototype only matters for constructor functions

  • ویژگی .prototype یک شیء است The .prototype property is an object

  • پروتوتایپ [[Prototype]] شیء به .prototype تابع اختصاص می‌یابد The object's [[Prototype]] is assigned to the function's .prototype

  • تقریباً تمام توابع هم [[Prototype]] و هم .prototype دارند Almost all functions have both a [[Prototype]] and .prototype property

  • چرا ویژگی .prototype تابع، یک تابع است و نه یک شیء؟ Why is the function's .prototype property a function and not an object?

  • چندین پروتوتایپ در زنجیره وجود دارد There are multiple prototypes in the chain

  • ویژگی constructor چیست؟ What is the constructor property?

  • چرا ویژگی constructor وجود دارد؟ Why is the constructor property there?

  • یک تست جالب A fun test

  • ویژگی .prototype قابل بازنویسی است The .prototype property can be overwritten

  • رونمایی از کل زنجیره پروتوتایپ The entire prototype chain revealed

  • Object.prototype حاکم است The Object.prototype rules the roost

  • تفاوت‌های بین [[Prototype]] و .prototype Differences between [[Prototype]] and .prototype

  • خلاصه ویژگی .prototype Summary of the .prototype property

کاربرد عملی: ساخت زنجیره‌های پروتوتایپ شخصی Practical Application - Building Your Own Prototype Chains

  • مرور کلی پروژه دوره Course project overview

  • استفاده از کلمه کلیدی 'new' برای ایجاد زنجیره پروتوتایپ (قبل از ۲۰۱۱) Using the 'new' keyword to set up a prototype chain (prior to 2011)

  • ایجاد زنجیره پروتوتایپی با کلمه کلیدی 'new' (بخش دوم) Creating the prototypal chain using the 'new' keyword (Part 2)

  • رفع مشکل ارجاع سازنده (Constructor reference) Fixing the constructor reference problem

  • استفاده از Object.create() برای ایجاد زنجیره پروتوتایپ (بعد از ES5 - ۲۰۱۱) Using Object.create() to set up a prototype chain (after ES5 - 2011)

  • استفاده از Object.setPrototypeOf() برای ایجاد زنجیره پروتوتایپ (بعد از ES6 - ۲۰۱۵) Using Object.setPrototypeOf() to set up a prototype chain (after ES6 - 2015)

  • استفاده از کلاس‌ها برای ایجاد زنجیره پروتوتایپ (بعد از ES6 - ۲۰۱۵) Using Classes to set up a prototype chain (after ES6 - 2015)

  • استفاده از کلمه کلیدی "extends" برای ساخت زنجیره پروتوتایپ مبتنی بر کلاس Using the "extends" keyword to build our class-based prototype chain

  • ساخت زنجیره پروتوتایپ سفارشی ۳ سطحی با استفاده از توابع سازنده Building a 3-level custom prototype chain - using Constructor Functions

  • ساخت زنجیره پروتوتایپ سفارشی ۳ سطحی با استفاده از کلاس‌ها Building a 3-level custom prototype chain - using Classes

  • مشکلات کد ما: تکرار کد Problems with our code - duplication

  • راه حل: استفاده از متد call() با توابع سازنده Solution: Using the call() method with constructor functions

  • تکمیل ۳ سطح ارث‌بری پروتوتایپ: توابع سازنده Completing 3 levels of prototype inheritance - Constructor Functions

  • تکمیل ۳ سطح ارث‌بری پروتوتایپ: سینتکس کلاس Completing 3 levels of prototype inheritance - Class Syntax

  • خلاصه Summary

زبان‌های پروتوتایپی در مقابل زبان‌های کلاسیک Prototypal Languages vs Classical Languages

  • زبان OOP چیست و کلاس‌ها و پروتوتایپ‌ها چه جایگاهی دارند؟ What is an OOP language and how do classes and prototypes fit into the picture?

  • نحوه برخورد زبان‌های مبتنی بر کلاس و مبتنی بر پروتوتایپ با ارث‌بری How class-based languages and prototype-based languages deal with inheritance

  • مثال Hello World: کلاس‌ها در مقابل پروتوتایپ‌ها Hello World example - classes vs prototypes

  • کد ارث‌بری با جاوا (یک زبان مبتنی بر کلاس) Inheritance code with Java (a class-based language)

  • تست کد در JDoodle Testing code on JDoodle

  • مقایسه بین کلاس‌ها و پروتوتایپ‌ها Comparison between classes and prototypes

  • خلاصه بخش Section Summary

پروتوتایپ‌ها در مقابل ترکیب (Composition) Prototypes vs Composition

  • مقدمه‌ای بر ترکیب (Composition) Intro into composition

  • کد Composition: تبدیل مدل پروتوتایپی به مدل ترکیبی Composition code - converting our prototypal-based model to composition

  • خلاصه: چه زمانی از Composition و چه زمانی از پروتوتایپ‌ها استفاده کنیم Summary - when to use composition vs prototypes

جمع‌بندی نهایی Outro

  • جمع‌بندی نهایی Outro

نمایش نظرات

آموزش دوره جامع پروتوتایپ‌های جاوا اسکریپت ۲۰۲۵
جزییات دوره
12h 37m
97
(آخرین آپدیت)
47
- از 5
دارد
دارد
دارد
Chris Croft
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Chris Croft Chris Croft

مربی مدیریت، سخنران، نویسنده