逆引き機能検索

クラス

クラスを定義する

最も簡単なクラス定義は以下の通りです。

クラス定義

// このスクリプトが名前空間 your の中の Class というクラスであることを示します。

goog.provide('your.Class');

// これがクラスの定義です。

// goog.provide によって名前空間 your が自動的に作成されるので your の定義は必要ありません。

your.Class = function() {

// コンストラクト処理

};

goog.provide はファイルの最上部にまとめて書いてください。

なお、クラスの定義時には @constructor タグによるアノテーションをおこなうことを推奨します。

Closure Linter および Closure Compiler が new 演算子のない呼び出しを警告してくれるようになるからです。

クラス継承(簡易ドキュメント版)

goog.provide('your.Class');

/** @constructor */

your.Class = function() {

// コンストラクト処理

};

Closure Linter の strict モードではインターフェースおよびクラスのコンストラクタの直前は3行の空行をおかないと警告されます。

上の例では 3 行あけています。

クラスを継承する

クラス継承は goog.inherits (メソッド継承)と goog.base (親クラスの同名メソッド呼び出し) をつかいます。

子クラスのコンストラクタの直後に goog.inherits(子クラス, 親クラス); と記述し、

子クラスのコンストラクタ内で goog.base(this, 親クラスコンストラクタへの引数); と記述してください。

クラス継承

/** @constructor */

my.Parent = function() {

// 親クラスのコンストラクト処理

};

my.Parent.prototype.method = function() {

// 親クラスのメソッド

};

/**

* @constructor

* @extends {my.Parent}

*/

my.Child = function() {

goog.base(this, /* 親クラスのコンストラクタ呼び出し。ここで引数を指定できる。 */);

// 子クラスのコンストラクト処理

// goog.inherits によって親クラスのメソッドも使える。

this.method();

};

goog.inherits(my.Child, my.Parent);