چطور بررسی کنم که یک تابع تو جاوااسکریپت وجود دارد؟
How to check if function exists in JavaScript?
من میخوام بدونم چطور میتونم بررسی کنم که یک تابع تو جاوااسکریپت وجود داره یا نه.
به عنوان مثال، وقتی تابع onChange گاهی اوقات لود نمیشه، جاوااسکریپت خطا میده که onChange یک تابع نیست. میخوام مطمئن بشم که اگر این تابع وجود داشت، فقط اون موقع اجرا بشه.
برای بررسی اینکه آیا یک تابع تو جاوااسکریپت وجود داره یا نه، میتونی از چند روش استفاده کنی. یکی از بهترین و رایجترین روشها اینه که از typeof استفاده کنی تا نوع تابع رو بررسی کنی:
if (typeof me.onChange === 'function') {
// The function exists and is safe to call
me.onChange(str);
}
این روش خیلی ساده و مطمئنه. اگر me.onChange به عنوان تابع تعریف نشده باشه، typeof مقدار 'undefined' رو برمیگردونه و به این ترتیب میتونی از خطاهای احتمالی جلوگیری کنی.
همچنین، اگه جاوااسکریپت مدرن استفاده میکنی، میتونی از عملگر Optional Chaining استفاده کنی که کد رو حتی کوتاهتر و خواناتر میکنه:
me.onChange?.(str);
این روش بررسی میکنه که آیا onChange وجود داره و تابع هست یا نه، و اگر نبود هیچ کاری انجام نمیده.