karakar
2 سال پیش توسط karakar مطرح شد
1 پاسخ

فراخوانی یک فانکشن در فانکشنی دیگر - جاوااسکریپت

سلام. دوستان من یک یک کلاس دارم که در اون دوتا فانکشن هست:

export class Test {
childOne(){
    event.currentTarget.addEventListener('click', this.childTwo(x, y, z));
}

childTwo(x, y, z){
    ...
    // Without return
}
}

فانکشن childTwo بدون return هست. ولی متاسفانه خطا میده و اجرا نمیشه. void رو هم نتونستم به این فانکشن اضافه کنم. کسی میتونه راهنمایی کنه که آیا این کلاس و زیر مجموعه هاش درستن یا نه ( کمی در جاوا اسکریپت ضعیف هستم)


ثبت پرسش جدید
...Mr
@RasoolMor10 2 سال پیش آپدیت شد
0

سلام
متد addEventListener در پارامتر دوم، نیاز به یک کالبک فانکشن داره تا خودش اون رو فراخوانی کنه! ولی تو داری یه متد رو اجرا میکنی و خروجی متد رو بهش میدی!
پس اول یه کالبک فانکشن قرار بده، بعد متد موردنظر رو داخل اون اجرا کن.

مشکل دیگر: تو باید اول یه listener برای دریافت event قبلیت بذاری، بعدش بری currentTarget رو بگیری ازش!
یا اگر میخوای متد childOne رو درجای دیگری (و listener دیگری) به عنوان کالبک فانکشن استفاده کنی، باید event رو برای ورودی اون قرار بدی. (هر چند نباید، currentTarget رو بگیری و دوباره یه event دیگه براش تعیین کنی، در صورتی که همون event رو همین الان هم داری! مگر اینکه بخوای event متفاوتی رو براش تعیین کنی!)

نکته: موقعی که به خطایی میخوری و میخوای با پرسش به نتیجه برسی، باید یا تصویر یا متن خطا رو توی پرسش قرار بدی.


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام