أحد أكبر الاختلافات بين js واللغات مثل Java هو أن الوظائف تُعتبر أيضًا بيانات ويمكن تشغيلها ككائن في Java. وبما أن Js لا يقوم بالتحقق من النوع، فيمكن للمصفوفات تخزين أي شيء. لذلك تساءلت عما إذا كان من الممكن تخزين الوظائف في المصفوفات.
تنفيذ الوظائف التالية:
بعد استدعاء الدالة، تقوم بتخزين نفسها في المصفوفة (لا يمكن تخزينها وفقًا للمعلمات)
يمكنك بعد ذلك استخدام دالة كبيرة لمعالجة المصفوفة واستدعاء الوظائف الموجودة بداخلها.
في الأصل، كنت أرغب في استخدام هذه الطريقة لتنفيذ وظيفة التراجع (أي أن كل وظيفة تخزن نفسها فيها، وإذا كانت تراجعًا، فسيتم حذف الوظيفة الأخيرة وتنفيذ قائمة الانتظار بأكملها)، لكنني شعرت لاحقًا أن هذا كان مزعجة للغاية. ومع ذلك، يتم تحقيق وظيفة مصفوفة الوظائف: لصق JSP
انسخ رمز الكود كما يلي:
<%@ لغة الصفحة = "Java" contentType = "text/html؛ مجموعة الأحرف = ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<أتش تي أم أل>
<الرأس>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>MothedList</title>
</الرأس>
<الجسم>
<نوع الإدخال = "زر" onclick = "ff ()" />
<نوع البرنامج النصي = "نص/جافا سكريبت">
قائمة = مصفوفة جديدة؛
f1 = الوظيفة f1(العلم) {
تنبيه("f1");
إذا (العلم)
list.push(f1);
}
f2 = الوظيفة f1(العلم) {
تنبيه("f2");
إذا (العلم)
list.push(f2);
}
الدالة وما يليها () {
f1(صحيح);
f2(صحيح);
f = list.pop();
و(خطأ);
f = list.pop();
و ()؛
}
</script>
</الجسم>
</html>