چگونه میتوانم به «this» در تایپاسکریپت همانطور که در جاوا اسکریپت دسترسی دارم، دسترسی پیدا کنم؟
در جاوااسکریپت، از کد زیر استفاده میکنم
function m() {
console.log(this)
}
m()
این زمینه فعلی را بازمیگرداند
اما در ts، من از کد زیر استفاده میکنم، این مقدار undefined برمیگرداند
function m() {
// @ts-ignore
console.log(this)
}
m()
امیدوارم بتوانم از این برای دریافت زمینه فعلی در تایپاسکریپت استفاده کنم، چگونه انجام دهم؟
پاسخ شماره ۱
همانطور که دیگر پاسخها به شما میگویند، این به خاطر use strict در تایپاسکریپت است. برای اینکه بتوانید یک زمینه this داشته باشید، میتوانید (اما نباید) از کلیدواژه new استفاده کنید.
زمین بازی
function m() {
// @ts-ignore
console.log(this);
}
// @ts-ignore
new m();
پاسخ شماره ۲
این به خاطر 'use strict' است که به طور پیشفرض در تایپاسکریپت شما استفاده شده است.
اگر این را در جیاس امتحان کنید، همان undefined را برمیگرداند
'use strict';
function m() {
console.log(this)
}
m()
