Simbol ialah objek terbina dalam yang pembinanya mengembalikan simbol primitif — juga dipanggil Nilai simbol atau hanya Simbol — ia dijamin unik. Simbol sering digunakan untuk menambah kunci sifat unik pada objek yang tidak akan berlanggar dengan kekunci mana-mana kod lain yang mungkin ditambahkan pada objek, dan yang disembunyikan daripada sebarang mekanisme yang biasanya digunakan oleh kod lain untuk mengakses objek. Itu membolehkan satu bentuk pengkapsulan yang lemah, atau bentuk penyembunyian maklumat yang lemah.
javascript Copy code // Create unique symbols const id = Symbol('id'); const name = Symbol('name'); // Create an object with symbol-based properties const user = { [id]: 101, [name]: 'Alice', age: 25 }; // Access the symbol properties console.log(user[id]); // 101 console.log(user[name]); // "Alice" // Add another property using a symbol const email = Symbol('email'); user[email] = 'alice@example.com'; console.log(user[email]); // "alice@example.com" // Symbols are not enumerable in for...in loops or Object.keys for (const key in user) { console.log(key); // Only "age" is logged } console.log(Object.keys(user)); // ["age"] // You can still access all properties if you know the symbol keys console.log(Object.getOwnPropertySymbols(user)); // [Symbol(id), Symbol(name), Symbol(email)]
javascript Copy code const collection = { items: ['apple', 'banana', 'cherry'], [Symbol.iterator]() { let index = 0; const items = this.items; return { next() { if (index < items.length) { return { value: items[index++], done: false }; } else { return { done: true }; } } }; } }; // Iterate over the object for (const item of collection) { console.log(item); } // Output: // apple // banana // cherry
Contoh ini menunjukkan cara Symbol.iterator membenarkan objek tersuai diulang menggunakan untuk...of.
Contoh: Menggunakan Simbol dalam Pustaka npm Popular
Contoh penggunaan Simbol yang ketara adalah dalam rangka kerja Express.js, rangka kerja aplikasi web yang digunakan secara meluas untuk Node.js. Dalam Express.js, Symbol digunakan untuk mentakrifkan kunci harta yang unik, menghalang potensi konflik dengan sifat yang ditentukan pengguna.
Snippet Kod daripada Express.js:
javascript Copy code // In Express.js, a symbol is used to define a unique property key const app = express(); app[Symbol('router')] = router;
Dalam coretan ini, Symbol('router') mencipta simbol unik yang berfungsi sebagai kunci sifat untuk objek apl. Pendekatan ini memastikan bahawa sifat penghala adalah berbeza dan tidak mengganggu sifat lain yang mungkin ditambahkan pada objek apl.
Faedah Menggunakan Simbol dalam Perpustakaan:
Atas ialah kandungan terperinci Simbol dalam Javascript dengan Contoh. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!