لطفا جهت اطلاع از آخرین دوره ها و اخبار سایت در
کانال تلگرام
عضو شوید.
آموزش دوره جامع پروتوتایپهای جاوا اسکریپت ۲۰۲۵
- آخرین آپدیت
دانلود 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
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
نمایش نظرات