"Jangan pernah memasukkan variabel dalam lingkup global" adalah praktik terbaik karena membuat variabel tersebut rapuh. Laman web biasa atau terutama aplikasi web biasa cenderung berisi banyak skrip berbeda dari berbagai sumber, dan berhati-hatilah untuk melacak variabel global Anda sendiri, semua orang yang skripnya Anda rujuk mungkin tidak ikut bermain Show Anggap saja seperti vaksin. Jika setiap orang memiliki vaksin, tidak akan ada ancaman, dan jika Anda sendiri yang memiliki vaksin, tidak ada ancaman, tetapi sementara semua orang mencoba untuk divaksinasi, jadi Anda mungkin tidak divaksinasi karena tidak ada orang lain yang menjadi milik Anda. Ada beberapa kebebasan dengan menggunakan global jika Anda namespace. Root namespace Anda adalah global, tetapi Anda hanya mengizinkan satu variabel root namespace. Itu kompromi yang biasanya diterima oleh komunitas Javascript, terutama jika itu terbatas pada aplikasi Anda Namespace mungkin terlihat seperti ini
Ini menempatkan ClassA dan ClassB di nesting dari namespace MyNamespace _Anda juga dapat membangunnya menggunakan fungsi namespace seperti yang saya buat [di sini], yang juga menjelaskan lebih lanjut bagaimana Anda dapat memanfaatkan kesederhanaan namespace Namun, secara umum, rekomendasinya adalah menggunakan variabel penutupan di mana saja. Ruang nama adalah minimum, tetapi tidak disarankan karena manfaat dari variabel penutupan. Variabel penutupan adalah variabel yang dideklarasikan dalam eksekusi suatu fungsi. Semua file skrip yang Anda tulis harus terkandung dalam suatu fungsi JavaScript menggunakan fungsi untuk mengelola ruang lingkup. Variabel yang didefinisikan di dalam fungsi berada dalam lingkup lokal dan tidak tersedia di luar fungsi. Sementara variabel yang didefinisikan di luar fungsi berada dalam lingkup global. Setiap fungsi saat dipanggil membuat ruang lingkup baru Masalah dengan variabel global Variabel global mudah ditimpa oleh skrip lain. Misalnya ketika dua bagian aplikasi yang terpisah mendefinisikan variabel global dengan nama yang sama tetapi dengan tujuan yang berbeda Laman web juga umum menyertakan kode yang tidak ditulis oleh pengembang laman, misalnya
Contoh 1Perhatikan contoh berikut. function multiply(x, y) { Aturan praktisnya adalah selalu mendeklarasikan variabel dengan function multiply(x, y) { Contoh 2Contoh lain yang membuat global tersirat adalah untuk mengaitkan penugasan sebagai bagian dari deklarasi function makeSomething() { _Penulisan ulang seperti kode-kode berikut. Baik a dan b bersifat lokal function makeSomething() { Contoh 3Properti dapat dihapus dengan operator hapus sedangkan variabel tidak bisa
Global yang dibuat dengan var x = 10 _Global tersirat yang dibuat tanpa x = 10 Contoh 4Anda menggunakan variabel dan kemudian mendeklarasikannya lebih lanjut dalam fungsi. Lihatlah contoh ini x = "global" // global variable_
Sebenarnya potongan kode di atas adalah seperti berikut ini. Variabel x dideklarasikan di bagian atas fungsi tetapi nilai x tetap pada posisi saat ini x = "global" // global variable _Variabel Global tidak buruk dan bahkan bukan masalah keamanan, tetapi tidak boleh menimpa nilai variabel lain Mengapa menggunakan variabel global adalah JavaScript yang buruk?Ini karena variabel global mudah ditimpa oleh skrip lain . Variabel Global tidak buruk dan bahkan bukan masalah keamanan, tetapi tidak boleh menimpa nilai variabel lain. Pada penggunaan lebih banyak variabel global dalam kode kami, ini dapat menyebabkan masalah pemeliharaan.
Apakah baik menggunakan variabel global dalam JavaScript?Cakupan variabel JavaScript adalah global atau lokal. Variabel global dideklarasikan DI LUAR fungsi dan nilainya dapat diakses/diubah di seluruh program. Berhati-hatilah dengan variabel global karena berisiko . Sebagian besar waktu Anda harus menggunakan penutupan untuk mendeklarasikan variabel Anda.
Mengapa variabel global adalah ide yang buruk?Variabel global umumnya tidak buruk karena kinerjanya, tetapi buruk karena dalam program berukuran signifikan, variabel tersebut mempersulit untuk mengenkapsulasi semuanya – there's information “leakage” which can often make it very difficult to figure out what's going on. |