【JavaScript】Symbol

  • このエントリーをはてなブックマークに追加

最近知ったけど、symbolというのが出てきたんだな。
typeof 〇〇で6種類ではなく、symbolが増えて7種類になった。

Symbolを使ってプロトタイプに新しいメソッドを追加する手法は、JavaScriptにおいて一般的なやり方らしい。

–mdn ここまで–
Array オブジェクトは要素の添字として任意の文字列を(連想配列のように)使用することはできません。非負の整数(またはその文字列形式)を使用しなければなりません。
–mdn ここまで–

そもそも、配列の要素の添え字は非負の整数(またはその文字列形式)やんか。
なので、symbolを使う特殊なパターンと言えるな。
Symbolは一意で不変な値を生成するために使用され、プロパティ名の衝突を避けることができる。




// 新しい Symbol を作成
const mySymbol = Symbol();

// Arrayプロトタイプのプロパティ名mySymbolに関数を格納する。
// こうすると、すべての配列でプロパティ名mySymbolを指定すると関数が呼ばれる。
Array.prototype[mySymbol] = function() {
  console.log('新しいメソッドが呼ばれました。');
};

// Array プロトタイプに新しいメソッドを追加
Array.prototype.mySymbol = function() {
  console.log('新しいメソッドが呼ばれました。その2');
};

// 配列を作成
const myArray = [1, 2, 3];

// 配列でプロパティ名mySymbolを指定して関数を呼び出す
myArray[mySymbol]();

// 新しいメソッドを呼び出す
myArray.mySymbol();
  • このエントリーをはてなブックマークに追加

SNSでもご購読できます。

コメントを残す

*