🌸 「なでしこ」
>
🍯 「貯蔵庫」
プロトタイプを利用してOOPで多態性してみる
🌟新規
📒一覧
🔌
🔍検索
🚪ログイン
プロトタイプを利用してOOPで多態性してみる 📖
JSメソッド実行があるものの、thisを参照することが難しいので、関数を1枚かぶせてみる。
プログラム:
(→大)
●(ARGSとBODYで)JS関数作成とは 『(function(A,B){return new Function(A,B);})』を[ARGS,BODY]でJS関数実行を戻す ここまで // メソッドの関数の本体 ●(これの)M鳴とは 「{これ["名前"]}:{これ["鳴声"]}」を表示 ここまで ●(これの)M猫呼とは 「{これ["名前"]}:知らないふりをして寝ている。」を表示 ここまで ●(これの)M犬呼とは 「{これ["名前"]}:こちらに気が付くと、突進してきた。」を表示 ここまで // メソッドにユーザ関数を使うためのラッパ関数 メソッド化関数文字列は『 return (function(...ARGS){ const that=this; const args=ARGS.slice(); args.unshift(that); return FUNC.apply(this,args); });』 メソッド化関数は["FUNC"]とメソッド化関数文字列でJS関数作成 ●(METHODを)メソッド化とは [METHODのJSオブジェクト取得]でメソッド化関数をJS関数実行で戻る ここまで // 基底クラス相当のオブジェクト 動物基底は{ "鳴":"M鳴"をメソッド化 } // 動物基底をプロトタイプとした犬オブジェクトを作る。 // 動物基底をクラス、犬をそのインスタンスと考える。 犬は"Object.create"を[動物基底]でJS関数実行 犬["名前"]は"犬" 犬["鳴声"]は"わんわん" 犬["呼"]は"M犬呼"をメソッド化 // 動物基底をプロトタイプとした猫オブジェクトを作る。 // 動物基底をクラス、猫をそのインスタンスと考える。 猫は"Object.create"を[動物基底]でJS関数実行 猫["名前"]は"猫" 猫["鳴声"]は"にゃぁ" 猫["呼"]は"M猫呼"をメソッド化 // 猫オブジェクトをプロトタイプとしたタマオブジェクトを作る。 // インスタンスをクラスとしてインスタンスが作れる・・・ タマは"Object.create"を[猫]でJS関数実行 タマ["名前"]は"タマ" // シンタックスシュガー用の関数 ●(OBJの)鳴くとは OBJの"鳴"を[]でJSメソッド実行 ここまで ●(OBJの)呼ぶとは OBJの"呼"を[]でJSメソッド実行 ここまで // 以下、動作テスト 動物園は[犬,猫,タマ] 「動物たちが鳴いている」を表示 動物園を反復、 それの鳴く ここまで 「動物たちを呼んでみた」を表示 動物園を反復、 それの呼ぶ ここまで
プログラムを実行
⭐ てぃふと@うぇいく 作
タイトル:
プロトタイプを利用してOOPで多態性してみる
ライセンス:
CC0 (著作権破棄)
タイプ:
wnako
タグ:
-
利用バージョン:
3.1.20
作成日時:
2021/03/16 22:00 (編集: 2021/05/06 22:37)
公開の投稿
⭐⭐
ログイン
して★を付けよう!
Twitterへ投稿
📝作品を編集
作品公開情報
📍この作品のURL:
📍アプリ(即時実行)のURL:
📍アプリ(実行ボタンあり)のURL:
📍ブログパーツ:
上記HTML↑をブログに貼り付けることでアプリを埋め込めます。
📍ライブラリ直リンク - 『!「***」を取込』で使うとき:
📍なでしこハブ (最新版の反映は1日後):
ソースの確認
編集履歴の確認
通報数:
0
通報って何?