تابستون داره تموم میشه ها، فرصت‌ها محدودن کلی آفر جذاب در کمپین تابستون🔥👇
۰ ثانیه
۰ دقیقه
۰ ساعت
۱ Erfan Soori
استفاده از this
مهرداد دادخواه حل شده توسط مهرداد دادخواه

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

در زمان ۳۷:۱۲ ویدئو:

 

چرا ما در 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 چک کنید ببینید چه اتفاق هایی داره میافته

بهترین پاسخ
مهرداد دادخواه ۰۳ فروردین ۱۴۰۰، ۰۲:۴۸