GASでクラスの基本をマスターしよう!メソッドから継承まで詳細ガイド
GASでクラスってどうやって作るんだろう?メソッドとか継承とか、難しそう…

猫男

catman
よし、catmanが「GASのクラス」についてわかりやすく伝授しよう!
GASでクラスを作成する方法
GAS(Google Apps Script)では、JavaScriptと同様にクラスを作成できます。
基本形を見てみよう!
class Animal {
constructor(name) {
this.name = name;
}
speak() {
Logger.log(this.name + ' makes a noise.');
}
}
class クラス名でクラスを定義し、constructorで初期化を行います。
クラスから新しいオブジェクトを生成するのも簡単!
const dog = new Animal('Dog');
なるほど、これでオブジェクトを作れるんだね!

猫男
GASでクラスのメソッドを使う方法
メソッドとは、クラスに属する関数のことです。クラス内でメソッドを定義して実行するには、こんな感じで書きます。
class Animal {
constructor(name) {
this.name = name;
}
speak() {
Logger.log(this.name + ' makes a noise.');
}
}
// 実行用関数
function testAnimal() {
const dog = new Animal('Dog');
dog.speak(); // ログに「Dog makes a noise.」と出る
}
クラスのメソッドは、そのクラスから作ったオブジェクトが使える共有の関数として登録され、プロパティのように呼び出せます。
GASのクラスで継承を活用する方法
クラスの継承によって、既存のクラスのプロパティやメソッドを別のクラスに引き継げます。
class Animal {
speak() {
Logger.log(this.name + ' makes a noise.');
}
}
class Dog extends Animal {
speak() {
super.speak(); // 親の speak() を呼ぶ
Logger.log(this.name + ' barks.');
}
}
function testDog() {
const dog = new Dog();
dog.name = 'Pochi'; // プロパティをセット
dog.speak();
}
extendsキーワードで継承を実現し、superキーワードで親クラスのプロパティを使用できます。
この例では、DogクラスがAnimalクラスを継承していますね。
これで複雑なクラス構造も作れそうだ!

猫男
GASのクラスを使ってクラス化する方法
クラスを使ってコードを組み立てることをクラス化といいます。
コードの再利用性を高め、より読みやすくしやすくします。
class Classroom {
constructor(className) {
this.className = className;
this.students = [];
}
addStudent(student) {
this.students.push(student);
}
}
function testClassroom() {
const myClass = new Classroom('3年A組');
myClass.addStudent('Taro');
myClass.addStudent('Hanako');
Logger.log(myClass.className); // "3年A組"
Logger.log(myClass.students); // ["Taro", "Hanako"]
}
Classroom クラスは「クラス名」と「生徒一覧」を管理。
生徒を追加する addStudent()
メソッドも持っています。
constructor
は新しいクラスインスタンスを作るときに呼ばれる特別なメソッド。this.className
はクラス名を保存するプロパティ。this.students
は生徒名を保存する配列。addStudent()
で配列に生徒を追加。

catman
クラスを使うと、より構造的で組織的なコードが書けるようになるぞ!
まとめ:GASでクラスを活用しよう
- クラスを使うとよりオブジェクト指向的にコーディング可能
- メソッドを定義し、クラス内の動作を細かく管理
- 継承でコードを効率的に再利用
- クラス化でコードを整理
これでGASのクラスも使いこなせる気がしてきた!いっぱい練習するぞ!

猫男

catman
その意気だ!クラスをマスターすれば、スクリプトがもっとパワフルになるぞ!