A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Symbol/for below:

Symbol.for() - JavaScript | MDN

Symbol.for()

Baseline Widely available

Symbol.for() は静的メソッドで、引数で与えられたキーでランタイム全体のシンボルレジストリー内に存在しているシンボルを検索し、見つかった場合はそれを返します。さもなければ、新しいシンボルがこのキーでグローバルシンボルレジストリー内に生成されます。

試してみましょう
console.log(Symbol.for("bar") === Symbol.for("bar"));
// Expected output: true

console.log(Symbol("bar") === Symbol("bar"));
// Expected output: false

const symbol1 = Symbol.for("foo");

console.log(symbol1.toString());
// Expected output: "Symbol(foo)"
構文 引数
key

必須の文字列です。シンボルに対するキー(シンボルの説明のためにも使用されます)。

返値

見つかった場合は指定したキーを持つ既存のシンボルです。さもなければ新しいシンボルを作成して返します。

解説

Symbol() と対照的に、Symbol.for() 関数はグローバルシンボルレジストリーリスト内で利用可能なシンボルを生成します。Symbol.for() は必ずしもすべての呼び出しで新しいシンボルを生成するわけでなく、引数で与えられた key をもつシンボルがレジストリー内にすでに存在しているかどうか最初に調べます。存在している場合は、そのシンボルが返されます。引数で与えられたキーをもつシンボルが見つからない場合、Symbol.for() は新しいグローバルシンボルを生成します。

例 Symbol.for() の使用
Symbol.for("foo"); // 新しいグローバルシンボルを作成
Symbol.for("foo"); // 既存のシンボルを受け取る

// 同じグローバルシンボルだが、ローカルのもの
Symbol.for("bar") === Symbol.for("bar"); // true
Symbol("bar") === Symbol("bar"); // false

// キーは説明としても使用される
const sym = Symbol.for("mario");
sym.toString(); // "Symbol(mario)"

グローバルシンボルキーや他の(ライブラリーコードの)グローバルシンボルとの名前の衝突を避けるために、シンボルの前に接頭辞をつけると良いかもしれません。

Symbol.for("mdn.foo");
Symbol.for("mdn.bar");
仕様書 ブラウザーの互換性 関連情報

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4