初心者でもできるGoogle Apps Scriptで最も簡単なクラスを作る方法


みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。

「初心者でもわかるGoogle Apps Scriptのクラス」についてシリーズでお伝えしています。

前回の記事はこちら。

【初心者向け】Google Apps Scriptでクラスを理解するためのオブジェクトの基礎知識
「初心者でもわかるGoogle Apps Scriptのクラス」をテーマに、その使い方と便利さについてお伝えしていきます。今回は、GASでクラスを理解するためのオブジェクトの基礎知識についてお伝えしていきます。

クラスを理解するために前提知識として必要なオブジェクトについてじっくり解説をしました。

さて、オブジェクトがわかったところで、今回はいよいよクラスを作っていきます。

Google Apps Scriptで最も簡単なクラスを作ってみよう!です。

new演算子、インスタンス、コンストラクタという難しそうなワードも超丁寧に解説していきますよ。

では、行ってみましょう!

最も簡単なGASのクラス

ひとまず、最も簡単なGASのクラスの作り方をお伝えします。

とっても簡単なので、細かいことは気にせずひとまずやってみましょう。

コードはこちらです。

これだけ。

…よく見ると、ただの関数(しかも空っぽの)を変数personに代入しているだけですね。

当然、実行しても何にも起きません。

確か、クラスってオブジェクトを作るものだったはず…

ただの空っぽの関数が、なぜクラスなのでしょう?

new演算子によるスクリプト

その謎は、先ほどの一文に加えてnew演算子を使うことで明らかになります。

以下のように2行ほどコードを追加してみましょう。

4行目にnew演算子が登場していますね。そして、その後ろに先ほど変数personに格納した関数を呼び出しているような感じです。

Logger.logメソッドで変数pのログ出力をしていますので、スクリプトを実行してログを確認してみましょう。

空っぽのオブジェクトのログ出力

ログには「{}」が出力されています。

つまり、変数pの中身は空のオブジェクトのようです。

GASでオブジェクトを作る仕組み

new演算子とその書式

new演算子は何かというと、オブジェクトの型を定義する関数を呼び出して、新たなオブジェクトを生成する演算子です。

new演算子の書式は以下の通りです。

var 変数 = new 関数名(引数1, 引数2,…)

new演算子によるステートメントが実行されると、以下の2つの処理が行われます。

  1. 新しいオブジェクトが生成される
  2. 新しいオブジェクトを定義するための関数が呼び出される

こうして生成・定義されたオブジェクトが戻り値として、変数に格納されます。

以下で、これらの2つの処理について詳しく解説をしていきます。

インスタンスとは

まず、new演算子によるステートメントが実行されると、「新しいオブジェクトが生成」されます。

この新しいオブジェクトをインスタンスといいます。

インスタンス…わかりづらい横文字ですが、new演算子のステートメントで作られたオブジェクトのことを指します。

ただ、生成されたはいいですが、どんなオブジェクトでしょうか…?

コンストラクタとは

生成されたオブジェクトがどういうものかを定義する処理を行う関数が、コンストラクタです。

new演算子の後ろに記述される関数がコンストラクタです。

そして、new演算子が実行されると、まずコンストラクタが呼び出されます。

今回でいうと、コンストラクタは関数personということになります。

本来、オブジェクトはデータを表すプロパティと、処理を表すメソッドを持つものでしたね。

ですから、オブジェクトの定義するコンストラクタ内には

  • プロパティの定義
  • メソッドの定義

などといったコードが記述されます。

ただ、今回のコンストラクタpersonは定義も何もない空っぽの関数でしたね。

なので、呼び出されても何にもしないわけです。

あと、一般的にはコンストラクタ名は通常の関数名と区別するために、先頭を大文字にします。

ですから、今回の例も以下のようにPersonとするべきですね。

new演算子の戻り値

new演算子は新しいオブジェクトを生成し、それについてコンストラクタで処理をした結果を戻り値として返します。

ただ、今回のコンストラクタpersonでは何にもしていないので、空っぽのオブジェクトがそのまま戻り値となり、変数pに格納されたということになります。

GASのクラスとは

さて、本記事ではクラスというワードがあまり出てきませんでしたね…汗

クラスというのは、一般的に「オブジェクトの型となるもの」のことをいいます。

そして、クラスをもとにしてオブジェクトを生成することをインスタンス化、そしてそれにより生成されたオブジェクトをインスタンスといいます。

GAS(というかJavaScript)では、コンストラクタがクラスの役割を担っているということになりますね。

コンストラクタを作ることが、すなわちクラスを作ることということになります。

まとめ

以上、Google Apps Scriptで最も簡単なクラスを作る方法についてお伝えしました。

また、new演算子の使い方、インスタンスおよびコンストラクタとは何かについても解説をしました。

今回は、クラスから空っぽのオブジェクトしか作れていませんので、中身のあるオブジェクトが作れるクラスを作る必要がありますね。

次回以降、その方法についてお伝えしていきます。

Google Apps Scriptでクラスに最も簡単なプロパティを追加する方法
「初心者でもわかるGoogle Apps Scriptのクラス」をテーマにシリーズでお伝えしております。今回はGASのクラスに最も簡単なプロパティを追加する方法です。thisキーワードの意味も解説します。

どうぞお楽しみに!

連載目次:初心者向けGoogle Apps Scriptでクラスを作ろう

使いどころやそのメリットが分かりづらいGASの「クラス」。本シリーズでは、初心者でもわかるように「これでもか!」とじっくり着実にクラスとそのメリットについて解説をしていきます。
  1. 【初心者向け】Google Apps Scriptでクラスを理解するためのオブジェクトの基礎知識
  2. 初心者でもできるGoogle Apps Scriptで最も簡単なクラスを作る方法
  3. Google Apps Scriptでクラスに最も簡単なプロパティを追加する方法
  4. Google Apps Scriptでクラスに最も簡単なメソッドを追加する方法
  5. Google Apps Scriptでスプレッドシートのデータの1行分を表すクラスを作る方法
  6. Google Apps Scriptのクラスでプライベートプロパティを作成する方法
  7. Google Apps Scriptでプライベートプロパティを取得するメソッドを作成する方法
  8. GASでdefinePropertiesメソッドを使ってクラスにプロパティを定義する方法
  9. Google Apps Scriptで即時関数にクラスを定義する理由とその方法
  10. Google Apps Scriptでスプレッドシートの表をインスタンス配列化する方法
  11. Google Apps Scriptでデータの集合を表すクラスを作成する方法
  12. Google Apps Scriptで自作オブジェクトについてプロパティを追加・削除するメソッドの作り方
  13. Google Apps Scriptでオブジェクトに直接追加しているプロパティだけループする方法
  14. GASでselfを使って関数の中からインスタンスを表すthisを使えるようにする方法
  15. GASでオブジェクトのデータをスプレッドシートに反映させるメソッドの作り方

  投稿者プロフィール

タカハシノリアキ株式会社プランノーツ 代表取締役
株式会社プランノーツ代表、コミュニティ「ノンプロ研」主宰。1976年こどもの日生まれ。東京板橋区在住。「ITで日本の『働く』の価値を上げる!」をテーマに、VBA&GASの開発、講師、執筆などをしております。→詳しいプロフィールはコチラ
★ご依頼・ご相談はお気軽にどうぞ!→お問い合わせはコチラ
★フォロー頂ければ嬉しいです。

タイトルとURLをコピーしました