見出し画像

Google Apps ScriptでClass構文を使う

概要

V8ランタイムが使えるようになってから、Google Apps Scriptでそれまで利用できなかったClass構文が使えるようになりました。単純な関数だけで構築していたコードを、オブジェクト指向な感じでGASを書けるようになったので、コードの再利用性や冗長な処理をより簡便な書き方で作ることが可能です

マイクロサービスな用途の多いGASですが、規模の大きなアプリを構築する場合には、Class構文のある無しはその後のメンテナンス性にも大きく影響する為、ぜひ身につけておきたい所です。

実際の作成例

ソースコード

//クラスを定義
class assetman {
 //コンストラクタを定義
 constructor(aname, s_kagaku, s_nen, s_type, s_per, k_per, h_per) {
       //プロパティをセットする
       this.aname = aname;         //資産名
       this.s_kagaku = s_kagaku;    //取得価額
       this.s_nen = s_nen;          //償却年数(耐用年数)
       this.s_type = s_type;       //償却方法
       this.s_per = s_per;           //償却率
       this.k_per = k_per;           //改定償却率
       this.k_per = h_per;           //保証率
 
       //保証率を元に償却補償額を定義する(小数点以下四捨五入)
       this.hosyou = Math.round(s_kagaku * h_per);
  }
}
 
//クラスを元にインスタンスを作る
var asset = new assetman("自動車","1000000",5,"定額法", 0.200, 0.250, 0.06552)

もっとも基本的なクラスの構築例。ここに、個別のメソッドを追加したり、extendsで継承して新たなクラスを作ってみたりが、Google Apps Scriptでも可能になります。

解説

Class構文は以下のような要素で構成されています。

  1. コンストラクタと呼ばれる変数の塊

  2. クラス内で使える一連の処理をするメソッド群れを追加

  3. セッターとゲッター

  4. クラスの継承

  5. プライベートプロパティ風の何か

  6. Static構文

Node.jsで利用する場合と異なり、GASでのClass構文は若干違う点があります。また利用できる構文はES2019辺りまでなので、最新のES構文が使えないケースがあったりします。

詳細や応用編はこちら

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