تحديد وظيفة الاتصال في جافا سكريبت [مكررة
-
20-09-2019 - |
سؤال
ممكن مكررة:
كيف تعرف وظيفة المتصل في جافا سكريبت؟
كيف يمكنني معرفة وظيفة JavaScript التي كانت الدعوة (السابقة في مكدس المكالمات)؟
أرغب في تحديد ما إذا كانت الوظيفة السابقة المسماة هي __edopostback في حدث التحميل OnBefore.
المحلول
كل وظيفة لديها caller
الممتلكات المحددة.
من عند https:/developer.mozilla.org/en/core_javascript_1.5_reence/global_objects/function/caller.:
function myFunc() {
if (myFunc.caller == null) {
return ("The function was called from the top!");
} else
return ("This function's caller was " + myFunc.caller);
}
}
ال Function.caller
الملكية ليست جزءا من معيار ECMA3 ولكنها نفذت عبر جميع المتصفحات الرئيسية، بما في ذلك IE و Firefox.
إذا كنت تستخدم وظيفة مجهولة، فلا يزال بإمكانك الوصول إلى caller
الممتلكات عبر arguments.calee
منشأه:
function() {
if (arguments.callee.caller == null) {
return ("The function was called from the top!");
} else
return ("This function's caller was " + arguments.callee.caller);
}
}
لاحظ أن هذا الرمز هو الوصول إلى الوظيفة الحالية، ثم الرجوع إلى نفس المعايير غير القياسية caller
الممتلكات على ذلك. هذا متميز عن استخدام إهمال arguments.caller
الممتلكات مباشرة، والتي هي لم تنفذ في بعض المتصفحات الحديثة.
نصائح أخرى
في Chromeos على CR-48، يمنح الوسائط .CALLE.CALLER الجسم وظيفة كاملة كسلسلة، لكل من وظائف المتصل المجهول المسمى.