با سلام و خسته نباشید به اساتید و دوستان محترم
در زمان ۳۷:۱۲ ویدئو:
چرا ما در func.call(this,x) بجای کلمه worker از کلمه this استفاده کردیم؟
ما از کجا فهمیدیم که الان در اسکوپ شئ worker هستیم؟
(بعبارتی: چطور فهمیدیم که در func.call(this,x) کلمه this داره به worker اشاره میکنه؟)
سلام دوست عزیز
وقت به خیر و سال نو مبارک
ببینید ما یک آبجکت داشتیم به اسم worker که تابع slow متعلق به آن بود
ما بدنه این تابع یا به عبارت تعریف این تابع را برای اینکه decorate بشه فرستادیم به تابع cachingDecorator و خروجی تابع دکوریتور خودش یه تابع است که روی متد slow آبجکت worker بازنویسی میشه
حالا در مرحله بعد ما تابع slow جدید را که بازنویسی و در واقع decorate کردیم توسط کدام آبجکت داریم صدا میزنیم؟
توسط worker
یعنی عامل invoke شدن تابع slow (همان نسخه ای که func.call(this,x) داخلش هست) آبجکت worker هست
پس this داخل آن اشاره میکنه به owner object اش
پیشنهاد میکنم کد را بنویسید و مرحله به مرحله با استفاده از console.log چک کنید ببینید چه اتفاق هایی داره میافته