Rumah > hujung hadapan web > tutorial js > Penutupan JavaScript: Mereka Tidak Menakutkan Seperti Yang Anda Fikirkan!

Penutupan JavaScript: Mereka Tidak Menakutkan Seperti Yang Anda Fikirkan!

DDD
Lepaskan: 2025-01-17 16:30:10
asal
888 orang telah melayarinya

JavaScript Closures: They

Penutupan JavaScript: Kuasai kemahiran lanjutan skop JS dengan mudah! Adakah anda masih bimbang tentang isu skop JavaScript? Jangan risau, hari ini kita akan melihat dengan lebih mendalam tentang penutupan dan menerangkannya dengan cara yang mudah difahami!

Apakah penutupan (penjelasan popular)?

Bayangkan penutupan sebagai beg galas yang dibawa oleh sesuatu fungsi. Beg galas ini mengandungi semua pembolehubah dalam persekitaran di mana fungsi itu dicipta. Bukankah ia sejuk?

Mari kita lihat contoh mudah:

<code class="language-javascript">function createGreeting(name) {
    // 这个变量在背包里!
    const message = "Hello, ";

    return function() {
        // 看!我们仍然可以在这里使用'message'
        console.log(message + name);
    }
}

const greetBob = createGreeting("Bob");
greetBob(); // 输出: "Hello, Bob"</code>
Salin selepas log masuk

Mengapa penutupan sangat penting?

Kuasa penutupan ialah ia boleh membantu kami melaksanakan beberapa fungsi yang sangat berguna:

  1. Pembolehubah peribadi (seperti diari rahsia?)
<code class="language-javascript">function createCounter() {
    let count = 0;  // 这是我们的秘密!

    return {
        increment() { count++ },
        getCount() { return count }
    };
}

const counter = createCounter();
counter.increment();
console.log(counter.getCount()); // 1
// console.log(count); // 错误!无法直接访问它</code>
Salin selepas log masuk
  1. Fungsi Kilang (seperti pembuat jampi ajaib✨)
<code class="language-javascript">function createMultiplier(multiplier) {
    return (number) => number * multiplier;
}

const double = createMultiplier(2);
const triple = createMultiplier(3);

console.log(double(5));  // 10
console.log(triple(5));  // 15</code>
Salin selepas log masuk

Kemahiran ingatan cepat

Ingat, penutupan mengekalkan pembolehubah, jadi ia mengambil sedikit ingatan. Ia seperti meletakkan buku dalam beg galas anda - ia mengambil ruang! Jika anda membuat beribu-ribu penutupan, anda mungkin ingin mempertimbangkan pendekatan lain.

<code class="language-javascript">// 在循环中要小心使用!
for (let i = 0; i < 10; i++) {
    // ...
}</code>
Salin selepas log masuk

Detik penting

Apabila saya mula-mula mengetahui tentang penutupan, perkara yang menarik perhatian saya ialah ia membantu kami mengelak daripada menggunakan pembolehubah global dan memastikan kod itu bersih. Daripada mencemarkan skop global dengan pembolehubah, gunakan penutupan untuk memastikan kod anda teratur:

const todoApp = (fungsi() { tugasan const = []; // Persendirian!

<code>return {
    addTask(task) { tasks.push(task) },
    getTasks() { return [...tasks] }
};</code>
Salin selepas log masuk

})();

todoApp.addTask("Penutupan Pembelajaran"); console.log(todoApp.getTasks()); // ["Penutupan Pembelajaran"]

Ringkasan

Itu sahaja! Penutupan mungkin kelihatan agak rumit pada mulanya, tetapi ia hanyalah fungsi yang membawa "knapsack" pembolehubah. Anda boleh menggunakannya untuk:

<code>

- 创建私有变量
- 创建函数工厂
- 保持代码整洁

记住要注意内存使用,你就能轻松驾驭闭包!

你最喜欢的闭包用法是什么?请在下方评论——我很想听听你的想法!

快乐编程!?

---

*觉得这篇文章有帮助吗?关注我,获取更多不会让你头疼的JavaScript技巧和窍门!*</code>
Salin selepas log masuk

Atas ialah kandungan terperinci Penutupan JavaScript: Mereka Tidak Menakutkan Seperti Yang Anda Fikirkan!. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan