[GAS][JavaScript]JavaScriptのオブジェクト指向的な部分のメモ

最近業務でGoogleAppsScriptを触っている上で、GASの文法のベースになっているJavascriptのオブジェクト指向な部分を復習。
サンプルは主に下記のサイトを参考にした。

インスタンスの作成

Javascriptでは関数もオブジェクトになる。そのため下記のように無名関数を使用してクラスを定義する。

var hello = function() {
  Logger.log('hello');
}
hello();

また下記の記述(一般的な関数定義)とも同じ。

function hello() {
  Logger.log('hello');
}
hello();

prototype

プロトタイプはインスタンスからクラスの関数を参照できる仕組み
継承だと必要のない関数まで継承されメモリ保持されてしまうが、プロトタイプでは必要な時だけインスタンス(子)がプロトタイプ(親)の関数を参照することになる。

function Dog() {}
  Dog.prototype.bark = function() {
    Logger.log('bow wow');
  }

var dog = new Dog();
dog.bark();

参考ページにもあるように、静的なメンバ変数をインスタンス作成時に渡しておけば、新しく関数定義することなくインスタンスそれぞれの変数をセットした上で親の関数を実行することができる。

function Dog(cry) {
  this.cry = cry;
}
// プロトタイプを使用して関数定義
Dog.prototype.bark = function() {
  Logger.log(this.cry);
}

var chiwawa = new Dog('bow wow');
chiwawa.bark();// 'bow wow'
var shibaken = new Dog('ruff ruff');
shibaken.bark();// 'ruff ruff'

その他参考

[JavaScript] オブジェクトの基礎

JavaScriptでnewしてインスタンス生成

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

14 + sixteen =

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください