sugulogの日記

JavaScriptのSymbol型。Symbolを使用しビルトインオブジェクトに独自メソッドを定義しよう。

スポンサードリンク

f:id:sugulog:20220209224445p:plain

こんにちは、すぐるです!

sugulogをお読みいただきありがとうございます!!

このブログは、「 過去の無知な自分に向けてわかりやすく説明するなら?? 」を基準に書いています。

少しでもお役に立てれば幸いです。

 

今回は、Symbolを使用しビルトインオブジェクトに独自メソッドを定義しようということで

について簡単に解説します!!

その為このブログを読むことで、Symbol型について理解が深まるのはもちろん、ビルトインオブジェクトに独自メソッドを定義できるようになります。

是非最後までご愛読ください。

 

今回は、

・Symbol

・ビルトインオブジェクトに独自メソッドを定義しよう

の順で解説していきます。

では早速、みていきましょう!!

・Symbol

symbolとは他と重複しないユニークな値を定義する型のことです。

symbolを定義する際はSymbol()で定義します。

f:id:sugulog:20220205203756p:plain

Symbolを定数symbol1、symbol2に定義しています。

コンソールでも確認してみましょう。

f:id:sugulog:20220205204457p:plain

Symbolは重複しないユニークな値を定義するため同じSymbol()で定義したとしてもif文ではsymbol1、symbol2はユニークな値としてfalseと判定されます。

・ビルトインオブジェクトに独自メソッドを定義しよう

ビルトインオブジェクトとはJavaScriptであらかじめ定義されているオブジェクトのことでDateやArrayオブジェクトなどが存在します。

このビルトインオブジェクトに対しSymbol()を利用することで他メソッドと被ることのない独自メソッドを定義することができます。

今回はshiftやpopといったメソッドがあらかじめ定義されているビルトインオブジェクトのArrayオブジェクトに対し、allSumという配列の要素(数値)を全て足した合計値を返す独自メソッドを定義して行きます。

f:id:sugulog:20220207202738p:plain

ビルトインオブジェクトに独自メソッドを定義する際はビルトインオブジェクト.prototype[シンボル] = function () {}で定義します。

prototypeとはオブジェクトにメンバ変数、メンバ関数を追加するためのメソッドです。

今回はArrayオブジェクトにSymbolで生成したallSumメソッドを定義しています。

function内は独自メソッドで行いたい処理を定義します。

今回は配列の要素(数値)を全て足した合計値を返す処理を記述しています。

またfunction関数内のthisはallSumメソッドを実施したいそれぞれの配列等のオブジェクトを指しています。

定義した独自メソッドを実行する際は実施したいオブジェクト[シンボル]()で実行します。

今回は定数num_arrayに対し実行しています。

f:id:sugulog:20220207202749p:plain

配列内の全ての要素(数値)を足した合計値が返されているのが確認できます。

 

以上、今回のブログでした。

Symbol型について理解が深まり、ビルトインオブジェクトに独自メソッドを定義できるようになりましたか??

ユニークな値を扱うためにも知識として蓄えておきましょう。

今回のToDo

Symbolを使用しビルトインオブジェクトに独自メソッドを定義してみましょう(≧∀≦)/

 

最後に!!

今後も、「 過去の無知な自分に向けてわかりやすく説明するなら?? 」を基準にブログを書いていきます。

少しでも気になった方はお試しでもいいので1度読者登録お願いします!

最後までご愛読いただきありがとうございました!!