Registri Symbol Global
Bagikan symbol dengan Symbol.for dan keyFor.
Registri Symbol Global adalah pelajaran JavaScript Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar JavaScript Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus JavaScript Academy mencakup 4 pelajaran total.
Registri Bersama
Registri simbol global memungkinkan Anda membuat simbol yang digunakan bersama di seluruh program berdasarkan kunci, bukan selalu simbol yang unik.
const a = Symbol.for("app.id")
const b = Symbol.for("app.id")
console.log(a === b)Symbol.for
Symbol.for mencari simbol berdasarkan kunci teks dalam registri. Jika simbol tersebut sudah ada, simbol itu dikembalikan; jika belum, simbol baru dibuat dan disimpan.
const token = Symbol.for("token")
console.log(token.description)Identitas Bersama
Berbeda dari pemanggilan Symbol biasa, dua pemanggilan Symbol.for dengan kunci yang sama mengembalikan simbol yang benar-benar sama, sehingga keduanya dianggap sama saat dibandingkan.
const x = Symbol.for("shared")
const y = Symbol.for("shared")
console.log(x === y)Perbandingan dengan Symbol
Symbol biasa selalu membuat simbol unik baru, sedangkan Symbol.for menggunakan kembali entri registri yang sudah ada untuk kunci yang sama.
const local1 = Symbol("k")
const local2 = Symbol("k")
const global1 = Symbol.for("k")
const global2 = Symbol.for("k")
console.log(local1 === local2)
console.log(global1 === global2)Symbol.keyFor
Symbol.keyFor melakukan kebalikannya: jika diberi simbol registri, metode ini mengembalikan kunci teks yang digunakan untuk membuatnya.
const s = Symbol.for("config")
console.log(Symbol.keyFor(s))keyFor dan Simbol Lokal
Untuk simbol yang tidak berada dalam registri, Symbol.keyFor mengembalikan undefined. Ini dapat digunakan untuk menguji apakah suatu simbol bersifat global.
const local = Symbol("private")
const global = Symbol.for("public")
console.log(Symbol.keyFor(local))
console.log(Symbol.keyFor(global))Berbagi Lintas Modul
Registri digunakan bersama bahkan di berbagai bagian aplikasi, seperti modul yang terpisah, sehingga berguna untuk kunci koordinasi yang dikenal bersama.
function getKey() { return Symbol.for("event.bus") }
console.log(getKey() === Symbol.for("event.bus"))Konvensi Penamaan
Karena registri bersifat global, berikan awalan pada kunci Anda untuk menghindari benturan dengan pustaka lain, misalnya menggunakan ruang nama seperti nama aplikasi Anda.
const a = Symbol.for("myapp.user.id")
const b = Symbol.for("myapp.user.id")
console.log(a === b)Registri Tetap Ada
Setelah kunci didaftarkan, setiap pemanggilan Symbol.for berikutnya dengan kunci tersebut mengembalikan simbol yang sama selama masa hidup program.
Symbol.for("once")
const again = Symbol.for("once")
console.log(Symbol.keyFor(again))Kapan Menggunakan Registri
Gunakan registri ketika kode yang terpisah perlu menyepakati simbol yang sama berdasarkan nama. Gunakan Symbol biasa ketika keunikan dan privasi lebih penting.
const sharedFlag = Symbol.for("feature.enabled")
const privateFlag = Symbol("feature.enabled")
console.log(sharedFlag === Symbol.for("feature.enabled"))
console.log(privateFlag === Symbol.for("feature.enabled"))Menggabungkan dengan Kunci Objek
Simbol registri juga dapat digunakan sebagai kunci objek, sehingga memungkinkan metadata bersama yang dapat dibaca modul mana pun yang bekerja sama dengan mengambil kembali simbol tersebut.
const META = Symbol.for("meta")
const obj = { [META]: "shared data" }
console.log(obj[Symbol.for("meta")])Pemeriksaan Singkat
Uji pengetahuan Anda tentang registri.
Ringkasan
Ringkasan: Registri global berbagi simbol berdasarkan kunci.
- Symbol.for menggunakan kembali atau membuat simbol registri
- Kunci yang sama mengembalikan simbol yang sama
- Symbol.keyFor mengembalikan kunci, atau undefined untuk simbol lokal
- Gunakan ruang nama pada kunci untuk menghindari benturan
const a = Symbol.for("k")
console.log(Symbol.keyFor(a))Pertanyaan yang Sering Diajukan
Apakah pelajaran “Registri Symbol Global” gratis?
Ya — teks lengkap “Registri Symbol Global” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus JavaScript Academy, upgrade ke CoddyKit PRO. Kursus JavaScript Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Registri Symbol Global”?
Bagikan symbol dengan Symbol.for dan keyFor. Kamu berlatih JavaScript Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai JavaScript Academy?
Tidak diperlukan pengalaman sebelumnya. JavaScript Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.
Berapa lama pelajaran “Registri Symbol Global” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran JavaScript Academy ini?
Ya. Setiap pelajaran JavaScript Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Membuat Symbol Unik
- Symbol sebagai Kunci Objek
- Registri Symbol Global
- Symbol yang Dikenal