يخرج هذا الرمز 10 10s بدلاً من 0 إلى 9 ، لأن هناك إشارة إلى I في الإغلاق ، ثم عند تنفيذ الوظيفة ، أصبحت 10
الدالة f1 () {for (var i = 0 ؛ i <10 ؛ i ++) {setTimeOut (function () {Alert (i) ؛} ، 1000) ؛}} f1 () ؛لحل المشكلات المذكورة أعلاه ، يمكنك استخدام وظائف مجهولة المصدر ذاتيا.
الدالة f2 () {for (var i = 0 ؛ i <10 ؛ i ++) {(function (e) {setTimeOut (function () {Alert (e) ؛} ، 1000) ؛}) (i) ؛}} f2 () ؛تأخذ الوظيفة المجهولة هنا I كمعلمة ، وهنا ستحصل E على نسخة من I ، والمرجع هو إشارة إلى E ، والتي تتجنب المشكلات المذكورة أعلاه.