〜ONE PIECE〜で学ぶオブジェクト
javascriptを学習中の作者が、大好きなONE PIECEになぞってオブジェクト作成方法について考えてみました。
それでまず簡単にオブジェクトについて
オブジェクトとは
オブジェクトとはプロパティの集合体と言えます。
中にはオブジェクトの機能とも言えるメソッド(処理)を含みますが、一つのオブジェクトが持つデータのことをプロパティと言います。
簡単に言いますと、現実世界に存在するものに例えられますが、🚘(車)というオブジェクトは、車名や色、排気量などのプロパティ(データ)を持ち、車というオブジェクト毎にその値は違ってきます。
(一つの駐車場に停まっている全ての車にも違いや個性がある様なものです)
そしてアクセルを踏むと車が走り出したり、ブレーキを踏むと減速する等のメソッド(処理)を持っています。
var変数名={"キー":"値","キー":"値","キー":"値"};//この{}オブジェクトリテラルで囲ったものがオブジェクトで、今回は3つのプロパティを持っています。
それでは、ONE PIECEの世界になぞってオブジェクトについて学んでいきましょう!
四皇をオブジェクトにしてみた
ONE PIECEの世界で最強の海賊として恐れられている4人の皇帝が「四皇」と呼ばれていますね。
海賊団の規模、戦闘力、知名度ともに最高クラスの海賊達です。
(ちなみに主人公ルフィは「第5の皇帝」として海賊株が急上昇している最中です)
それでは四皇(であった海賊も含めて)を紹介していきます。
白ひげ
まずは白ひげの愛称で海賊時代を作った立役者の一人、
白ひげ海賊団のおやぶん『エドワード・ニューゲート』
悪魔の実「グラグラの実」を食べた地震人間ですね。
letEdward_Newgate={name:"shirohige"//呼び名プロパティDevilfruit:"guragura"//悪魔の実プロパティSweepstakes:5040000000//懸賞金プロパティearthquake:function(){"地震を起こす処理"};//メソッド};
ビッグ・マム
二人目は、最強の巨人族でビッグ・マム海賊団の船長『シャーロット・リンリン』
「ソルソルの実」の能力者で魂や寿命を自由に操ることが可能なチート能力をもつ、トットランドの女王です。
letCharlotte_Ringling={name:"Bigmum"//呼び名プロパティDevilfruit:"soulsoul"//悪魔の実プロパティSweepstakes:4388000000//懸賞金プロパティTake_away_the_soul:function(){"魂を奪う処理"};//メソッド};
カイドウ
三人目は、陸海空生きとし生けるもの全ての者達の中で「最強の生物」と呼ばれる百獣海賊団船長『カイドウ』
「リュウリュウの実モデル・ドラゴン」の能力者と予想されている不死身人間ですね!
letkaidou={name:"kaidou"//呼び名プロパティDevilfruit:"ryuryu"//悪魔の実プロパティSweepstakes:4611100000//懸賞金プロパティTransform_dragon:function(){"龍に化ける処理"};//メソッド};
黒ひげ
4人目は、ラスボスになるのではと言われている黒ひげ海賊団船長『マーシャル・D・ティーチ』
体の構造が異形で複数の悪魔の実の能力を持つ悪を絵に描いたような人物です。
letMarshall_D_teach={name:"kurohige"//呼び名プロパティfirst_Devilfruit:"yamiyami"//悪魔の実プロパティSweepstakes:2247600000//懸賞金プロパティDeprive_ability:function(){"悪魔の実の能力を奪う処理"};//メソッド};
そしてこの4人を一纏めにした四皇オブジェクトを生成して、さらに四皇オブジェクトを海賊オブジェクトのプロパティの一つとし、最後に海賊プロパティをONE PIECEのプロパティの一つとして変数化してみると下記のコードになるのではないでしょうか。
letONE_PIECE={//ONE_PIECEを変数化Pirates:{//ONE_PIECEの海賊プロパティFour_emperors:[//海賊オブジェクトに配列型の四皇プロパティを定義し、配列に海賊を入れていきます。{name:"shirohige"Devilfruit:"guragura"Sweepstakes:5040000000earthquake:function(){"地震を起こす処理"};},{name:"Bigmum"Devilfruit:"soulsoul"Sweepstakes:4388000000Take_away_the_soul:function(){"魂を奪う処理"};},{name:"kaidou"Devilfruit:"ryuryu"Sweepstakes:4611100000Transform_dragon:function(){"龍に化ける処理"};},{name:"kurohige"first_Devilfruit:"yamiyami"Sweepstakes:2247600000Deprive_ability:function(){"悪魔の実の能力を奪う処理"};}],Sail:function(){"海賊として航海する処理"}//海賊オブジェクトは冒険のために航海するメソッドを持っています。},Navy://以下略省略 ・・・ ONE PIECEは海賊プロパティの他に海軍プロパティも持ちます。};
黒ひげになって能力を奪おう
黒ひげが、死んだ白ひげの体からグラグラの実の能力を奪ったことも衝撃的でした。
ということで、黒ひげオブジェクトにグラグラの実のプロパティを追加してみましょう!
Marshall_D_teach.second_Devilfruit="guragura"
これで黒ひげオブジェクトにグラグラの実のデータを追加できましたね!
黒ひげは二つの能力を持つ様になりました!
name:"kurohige"first_Devilfruit:"yamiyami"second_Devilfruit:"guragura"//追加した悪魔の実プロパティ Sweepstakes:2247600000Deprive_ability:function(){"悪魔の実の能力を奪う処理"};//※グラグラの使い方は覚えていないものとします。
どうして黒ひげが、白ひげの能力を知ることが出来たのかと言いますと(白ひげ有名だからとかストーリーの設定について冷静に考えないでください。。)
まずは白ひげの能力が何であるかアクセスして確認しないといけませんね。
ONE_PIECE.Pirates.Four_emperors[0].Devilfruit;// もしくはONE_PIECE["Pirates"]["Four_emperors"][0]["Devilfruit"];
これで配列0番目に入れられた白ひげオブジェクトの悪魔の実プロパティにアクセス出来ますね!
黒ひげは、白ひげの地震を起こす処理(メソッド)を実行したいので、プロパティだけでなくメソッドを実行することも出来ます(ユーザー目線)。
ONE_PIECE.Pirates.Four_emperors[0].earthquake();
私の予想ですが、おそらく黒ひげは黒マントの中でMacをイジりながらコードをせかせかと書いていたのだと思います。
以上がONE PIECEの世界で考えるオブジェクトでした!
面白かったらLGTMお願いします🤗