見出し画像

楽するためなんです GAS

苦と楽はしましまサンドイッチ。

こんにちは。サキナオコです^^
突然雨が降ったかと思ったら、やんでます。

いつもご覧いただき、スキ、フォロー、コメントまで、
本当にほんとうにどうもありがとうございます!*^o^*
おかげさまで今日も気合でなんとか眠らず学習できました!^o^/

さて、ひき続きオブジェクト。クラスとインスタンス化です。

JSのクラスのひな形は実体あるオブジェクトで、プロトタイプという仕組みによりインスタンス化していると。そして一般的に他の言語のクラスはクラスという型からオブジェクトの実体を生成するとのことで...すみません、よくわかりません。

わかったのは、クラスというのはオブジェクトの特性を定義するひな形、インスタンス化とはクラスを元にしてオブジェクトを生成すること、インスタンスは生成されたオブジェクトのこと。

そして記述で楽ができて、メンテナンス性もいいと。

クラスというオブジェクトの入れるものの決まった空き箱がたくさんあって、それに各々データを入れて、できたオブジェクト=インスタンス、てことなんでしょうか??

なんか眠気が襲ってきました。いけません。気をしっかりもたなくては。

サンプルのコードを換えて番号振って載せてみます。
そうそう、「番号」という漢字を' 'で囲わずに書けるとは驚きました。
最初' 'をつけたらエラーになったので外したのです。
結果勝手に'  'がついてプロパティ部分になってます。

function myFunction_8_17() { 
 class Person{                 // 1
   constructor(num,name){      // 2
     this.番号= num;           // 3
     this.namae=name;          // 4
   }

 }
 const p1 = new Person(1,'Saki'); // 5
 p1.番号+=20;                     // 6
 p1.favorite = 'Chocolate';      // 7
 console.log(p1);


 const p2 = new Person(2,'Naoko');
 console.log(p2);
 
}
// >>{ '番号': 21, namae: 'Saki', favorite: 'Chocolate' } // 8
// >>{ '番号': 2, namae: 'Naoko' }

1.クラスの定義。クラス名は...ここで出ました、パスカル記法でとのこと。一文字目が大文字。はい。

2.クラスにプロパティを定義するためのコンストラクタという関数。
クラスをインスタンス化するときに最初に呼び出されると。
( )に値となる仮引数num,nameが入ってます。

3.4.  thisキーワードでこれから生成されるインスタンスのプロパティが「番号」のところはnumっていう値だよ、「namae」はnameね、としておいて

5.クラス名をインスタンス化するにはnew演算子を使う...ふむふむ、
new Personのところ。( )には具体的な値がきてここでインスタンスが製造されるのですね。

6.個別にメンバーの値の変更や追加ができるとのことで、プロパティ「番号」に20プラスしてみました。

7.新しいプロパティと値追加

8.結果

ということで、文章だけだと理解しにくいところがコードを見ていくとわかりました。ははぁ...

要するに、クラスとは、楽ができるインスタンス製造機なのですね!^o^

楽をするにもタイヘンです。
はい、終了〜!


この記事が気に入ったらサポートをしてみませんか?