Rumah hujung hadapan web tutorial js JS中for循环闭包问题如何解决

JS中for循环闭包问题如何解决

Feb 24, 2018 pm 01:59 PM
javascript bagaimana selesaikan

本文我们将和大家分享两种JS中for循环闭包问题如何解决的方法,希望能帮助到大家。


像这样一个代码片段,初学者会理所当然地认为依次点击Li会弹出相应的0、1、2、3、4、5,但实际结果却是这样的


我们无论点哪个按钮,最后弹出来的都是6。这就是经典的for循环闭包问题。

那么,首先让我们来了解一下什么是闭包,百度百科是这样解释的:闭包是可以包含自由(未绑定到特定对象)变量的代码块;这些变量不是在这个代码块内或者任何全局上下文中定义的,而是在定义代码块的环境中定义(局部变量)。“闭包” 一词来源于以下两者的结合:要执行的代码块(由于自由变量被包含在代码块中,这些自由变量以及它们引用的对象没有被释放)和为自由变量提供绑定的计算环境(作用域)。在 Scala、Scheme、Common Lisp、Smalltalk、Groovy、JavaScript、Ruby、 Python、Lua、objective c 以及Java(Java8及以上)等语言中都能找到对闭包不同程度的支持。

而我的简单理解就是:一个函数中嵌套了另一个函数,里面的一个函数要访问外层函数的变量,所以就形成了一个闭包,闭包即是为了保留某些局部变量的值而存在的。

然而javascript 有些常见的闭包问题,比如上面的例子,那么我们来看看怎么解决这些问题。

解决方案一:加一层闭包,i 以函数参数形式传递给内层函数:

结果就是点击相应的li会弹出相应的数字,比如点第三个li,会出现以下效果:

解决方案二:找个属性将i值保存起来,然后弹出这个值

点第三个li,会出现以下效果:

相关推荐:

JavaScript for循环if判断语句详解

for-in循环和for循环遍历数组的用法

javascript中for循环使用时的注意事项

Atas ialah kandungan terperinci JS中for循环闭包问题如何解决. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Penyelesaian kepada masalah bahawa sistem Win11 tidak dapat memasang pek bahasa Cina Penyelesaian kepada masalah bahawa sistem Win11 tidak dapat memasang pek bahasa Cina Mar 09, 2024 am 09:48 AM

Penyelesaian kepada masalah sistem Win11 tidak dapat memasang pek bahasa Cina Dengan pelancaran sistem Windows 11, ramai pengguna mula menaik taraf sistem pengendalian mereka untuk mengalami fungsi dan antara muka baharu. Walau bagaimanapun, sesetengah pengguna mendapati bahawa mereka tidak dapat memasang pek bahasa Cina selepas menaik taraf, yang menyusahkan pengalaman mereka. Dalam artikel ini, kami akan membincangkan sebab mengapa sistem Win11 tidak dapat memasang pek bahasa Cina dan menyediakan beberapa penyelesaian untuk membantu pengguna menyelesaikan masalah ini. Analisis sebab Pertama, mari kita menganalisis ketidakupayaan sistem Win11 untuk

Bagaimana untuk menyelesaikan kod ralat wap E20 Bagaimana untuk menyelesaikan kod ralat wap E20 Feb 19, 2024 pm 09:17 PM

Apabila menggunakan Steam untuk memuat turun, mengemas kini atau memasang permainan, anda sering menghadapi pelbagai kod ralat. Antaranya, kod ralat biasa ialah E20. Kod ralat ini biasanya bermakna pelanggan Steam menghadapi masalah untuk mengemas kini permainan. Nasib baik, walaupun, ia tidak begitu sukar untuk menyelesaikan masalah ini. Mula-mula, kita boleh mencuba penyelesaian berikut untuk membetulkan kod ralat E20 1. Mulakan semula klien Steam: Kadangkala, memulakan semula klien Steam secara langsung boleh menyelesaikan masalah ini. Dalam tetingkap Steam

Lima petua untuk mengajar anda cara menyelesaikan masalah telefon Black Shark tidak dihidupkan! Lima petua untuk mengajar anda cara menyelesaikan masalah telefon Black Shark tidak dihidupkan! Mar 24, 2024 pm 12:27 PM

Apabila teknologi telefon pintar terus berkembang, telefon bimbit memainkan peranan yang semakin penting dalam kehidupan seharian kita. Sebagai telefon perdana yang memfokuskan pada prestasi permainan, telefon Black Shark sangat digemari oleh pemain. Namun, kadangkala kita juga menghadapi situasi telefon Black Shark tidak boleh dihidupkan Pada masa ini, kita perlu mengambil beberapa langkah untuk menyelesaikan masalah ini. Seterusnya, izinkan kami berkongsi lima petua untuk mengajar anda cara menyelesaikan masalah telefon Black Shark tidak dihidupkan: Langkah 1: Periksa kuasa bateri Pertama, pastikan telefon Black Shark anda mempunyai kuasa yang mencukupi. Ia mungkin kerana bateri telefon telah habis

Pemacu tidak boleh dimuatkan pada peranti ini Bagaimana untuk menyelesaikannya? (Diuji secara peribadi dan sah) Pemacu tidak boleh dimuatkan pada peranti ini Bagaimana untuk menyelesaikannya? (Diuji secara peribadi dan sah) Mar 14, 2024 pm 09:00 PM

Semua orang tahu bahawa jika komputer tidak dapat memuatkan pemacu, peranti mungkin tidak berfungsi dengan betul atau berinteraksi dengan komputer dengan betul. Jadi bagaimana kita menyelesaikan masalah apabila kotak gesaan muncul pada komputer bahawa pemandu tidak boleh dimuatkan pada peranti ini? Editor di bawah akan mengajar anda dua cara untuk menyelesaikan masalah dengan mudah. Tidak dapat memuatkan pemacu pada peranti ini Penyelesaian 1. Cari "Pengasingan Kernel" dalam menu Mula. 2. Matikan Integriti Memori, dan ia akan menggesa "Integriti Memori telah dimatikan. Peranti anda mungkin terdedah. Klik di belakang untuk mengabaikannya, dan ia tidak akan menjejaskan penggunaan." 3. Masalah boleh diselesaikan selepas menghidupkan semula mesin.

Bagaimana untuk menyelesaikan masalah menyimpan gambar secara automatik semasa menerbitkan di Xiaohongshu? Di manakah imej yang disimpan secara automatik semasa menyiarkan? Bagaimana untuk menyelesaikan masalah menyimpan gambar secara automatik semasa menerbitkan di Xiaohongshu? Di manakah imej yang disimpan secara automatik semasa menyiarkan? Mar 22, 2024 am 08:06 AM

Dengan perkembangan media sosial yang berterusan, Xiaohongshu telah menjadi platform untuk lebih ramai golongan muda berkongsi kehidupan mereka dan menemui perkara yang indah. Ramai pengguna bermasalah dengan isu autosimpan semasa menyiarkan imej. Jadi, bagaimana untuk menyelesaikan masalah ini? 1. Bagaimana untuk menyelesaikan masalah menyimpan gambar secara automatik semasa menerbitkan di Xiaohongshu? 1. Kosongkan cache Pertama, kita boleh cuba mengosongkan data cache Xiaohongshu. Langkah-langkahnya adalah seperti berikut: (1) Buka Xiaohongshu dan klik butang "Saya" di sudut kanan bawah (2) Pada halaman tengah peribadi, cari "Tetapan" dan klik padanya (3) Tatal ke bawah dan cari "; Kosongkan Cache". Klik OK. Selepas mengosongkan cache, masukkan semula Xiaohongshu dan cuba siarkan gambar untuk melihat sama ada masalah penjimatan automatik telah diselesaikan. 2. Kemas kini versi Xiaohongshu untuk memastikan bahawa Xiaohongshu anda

Bagaimana untuk menyelesaikan aksara Cina yang kacau dalam Linux Bagaimana untuk menyelesaikan aksara Cina yang kacau dalam Linux Feb 21, 2024 am 10:48 AM

Masalah bercelaru Cina Linux adalah masalah biasa apabila menggunakan set aksara Cina dan pengekodan. Watak bercelaru mungkin disebabkan oleh tetapan pengekodan fail yang salah, tempat sistem tidak dipasang atau ditetapkan, dan ralat konfigurasi paparan terminal, dsb. Artikel ini akan memperkenalkan beberapa penyelesaian biasa dan memberikan contoh kod khusus. 1. Periksa tetapan pengekodan fail Gunakan arahan fail untuk melihat pengekodan fail Gunakan perintah fail dalam terminal untuk melihat pengekodan fail: nama fail-fail jika terdapat "charset".

Kongsi kaedah untuk menyelesaikan masalah yang PyCharm tidak boleh dibuka Kongsi kaedah untuk menyelesaikan masalah yang PyCharm tidak boleh dibuka Feb 22, 2024 am 09:03 AM

Tajuk: Cara menyelesaikan masalah yang PyCharm tidak boleh dibuka ialah persekitaran pembangunan bersepadu Python yang berkuasa, tetapi kadangkala kita mungkin menghadapi masalah yang tidak dapat dibuka PyCharm. Dalam artikel ini, kami akan berkongsi beberapa penyelesaian biasa dan memberikan contoh kod khusus. Semoga ini membantu mereka yang menghadapi masalah ini. Kaedah 1: Kosongkan cache Kadangkala fail cache PyCharm boleh menyebabkan program gagal dibuka seperti biasa. Kami boleh cuba mengosongkan cache untuk menyelesaikan masalah ini. alat

Bagaimana untuk menyelesaikan masalah gateway lalai secara automatik hilang Bagaimana untuk menyelesaikan masalah gateway lalai secara automatik hilang Feb 24, 2024 pm 04:18 PM

Bagaimana untuk menyelesaikan masalah bahawa pintu masuk lalai hilang secara automatik Dalam masyarakat moden, Internet telah menjadi bahagian yang sangat diperlukan dalam kehidupan orang ramai. Sama ada untuk kerja atau hiburan, kita semua memerlukan sambungan rangkaian yang stabil untuk menyelesaikan pelbagai tugas. Gerbang lalai ialah salah satu elemen utama yang menghubungkan rangkaian tempatan ke Internet luaran. Walau bagaimanapun, kadangkala kita mungkin menghadapi masalah bahawa get laluan lalai hilang secara automatik, mengakibatkan ketidakupayaan untuk mengakses Internet. Jadi, bagaimanakah kita harus menyelesaikan masalah ini apabila gerbang lalai hilang? Pertama, kita harus menjelaskan konsep gerbang lalai. Gerbang lalai ialah laluan rangkaian

See all articles