ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript のシンボルと例
シンボルは、コンストラクターがシンボル プリミティブを返す組み込みオブジェクトです。シンボル値、または単にシンボルとも呼ばれます — それは一意であることが保証されています。シンボルは、他のコードがオブジェクトに追加するキーと衝突せず、オブジェクトにアクセスするために他のコードが通常使用するメカニズムから隠蔽される、一意のプロパティ キーをオブジェクトに追加するためによく使用されます。これにより、弱いカプセル化の形式、または弱い形式の情報隠蔽が可能になります。
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
この例は、Symbol.iterator が for...of を使用してカスタム オブジェクトを反復できるようにする方法を示しています。
例: 一般的な npm ライブラリでのシンボルの使用
シンボルの使用例として注目すべきものは、Node.js で広く使用されている Web アプリケーション フレームワークである Express.js フレームワークです。 Express.js では、Symbol を使用して一意のプロパティ キーを定義し、ユーザー定義のプロパティとの潜在的な競合を防ぎます。
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;
このスニペットでは、Symbol('router') はアプリ オブジェクトのプロパティ キーとして機能する一意のシンボルを作成します。このアプローチにより、ルーターのプロパティが明確になり、アプリ オブジェクトに追加される可能性のある他のプロパティに干渉しなくなります。
ライブラリでシンボルを使用する利点:
以上がJavaScript のシンボルと例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。