نسخة الكود كما يلي:
<! doctype html>
<html>
<head>
<meta charset = "utf-8">
<title> إدراج العنوان هنا </title>
<script type = "text/javaScript">
/*
* 1. جميع المتغيرات في JS شائعة.
2. js ليس لديها متغيرات ثابتة
3. الإغلاق: يمكن استدعاء المتغيرات خارج الوظيفة داخل الوظيفة ؛ خلاف ذلك ، لا يمكن
*/
var r = 10 ؛
وظيفة test1 () {
var r2 = "ABC" ؛
// تنبيه (ص)
}
// ALERT (R2) ؛ // R2 داخل الوظيفة التي لا يمكن الوصول إليها
test1 () ؛
// وظائف متداخلة على ما يرام
وظيفة test2 (num1) {
وظيفة Test3 (num2 ، num3) {
إرجاع num2+num3+num1 ؛
}
إعادة اختبار 3 (10،20)
}
// ALERT (test2 (30)) ؛
// -------------------------------------------------------------------------------------------------------------------------
وظيفة testfun () {
var r = 1 ؛
var arr = [] ؛
لـ (var x = 0 ؛ x <3 ؛ x ++) {
R ++ ؛
arr [x] = function () {
العودة ص.
}
}
إرجاع arr ؛
}
ALERT ("testfun:"+testfun ()) ؛
var arr2 = testfun () ؛
تنبيه ("arr:"+arr2 [0]) ؛
التنبيه ("arr:"+arr2 [1] ()) ؛
تنبيه ("arr:"+arr2 [2] ()) ؛
.
/*تحليل الأسباب:
فهم ما هي الوظائف الموجودة في JavaScript؟
الوظيفة هي كتلة قابلة للتنفيذ من التعليمات البرمجية ، ويمكن أيضًا تمثيل الوظيفة بمتغير ، مثل الطريقة الثانية لتحديد الوظيفة.
var add = وظيفة جديدة ("a" ، "إرجاع A+10") ؛ الجوهر الأساسي هو مؤشر اسم الوظيفة
هذا الرمز القابل للتنفيذ الذي تم إنشاؤه للمتغيرات.
* أولاً ، بعد تنفيذ وظيفة testfun ، يتم تخزين الشيء نفسه في ARR [0] و ARR [1] و ARR []
وظيفة كتلة الكود القابلة للتنفيذ () {
العودة ص
} وبعبارة أخرى ، فإن الثلاثة أعلاه هي مجرد متغيرات الوظائف. لتنفيذها ، تحتاج فقط إلى إضافة () بعد الاسم المتغير وسيكون على ما يرام.
وفي هذا الوقت قيمة R هي 4
عند تنفيذ ARR [0] () يعادل تنفيذ الرمز في كتلة الرمز هذه.
وبالتالي فإن النتيجة النهائية تعود R ، بالطبع ، تعود 4.
*/
</script>
</head>
<body>
</body>
</html>