Ael.lang.Classクラス

説明

Aelが提供するクラスのメタクラスで、スーパークラスやフィールドの定義情報を持ちます。new演算子によってClassインスタンスを生成することができ、自身もClassインスタンスです。通常、new演算子でインスタンス化すると戻り値はオブジェクト(type(x) === "object")ですが、このクラスはプリミティブの関数型値(typeof(x) === "function")を返します。これはClassインスタンスからnew演算子によって個々のオブジェクトを生成する為です。

var clazz = new Ael.lang.Class();
var object = new clazz();		// clazzは関数型である為、new演算子を用いてインスタンス化できる

Classインスタンスをnew演算子によってインスタンス化した場合、prototypeのinitializeメソッドがコンストラクタとして呼び出されます。initializeメソッドが定義されていない場合は呼び出されません。

instanceプロパティ

metadata

instance metadata([object metadata]) : object
  • @version 0.2
  • @param {object} [metadata] クラス情報
  • @return {object} クラス情報

クラス情報を返す。
引数を指定して呼び出すとクラス情報を変更する。このメソッドはクラス情報に対する特権メソッドです。

prototypeプロパティ

initialize

prototype initialize() : function
  • @version 0.2
  • @return {function} クラス

クラスを生成して返す。

aelプロパティ

ael

ael ael(string expr) : Ael.lang.Property
  • @version 0.4
  • @param {string} expr メンバ定義文字列
  • @return {Ael.lang.Property} aelプロパティ

クラスからメンバ定義文字列に該当するaelプロパティ定義を返す。

inherit

ael void inherit(Ael.lang.Class|Ael<Ael.lang.Class> superclass) : void
  • @version 0.2
  • @param {Ael.lang.Class|Ael<Ael.lang.Class>} superclass スーパークラス

引数のスーパークラスをAelオブジェクトが持つクラスで継承する。

instance

ael instance(string expr) : Ael.lang.Property
  • @version 0.4
  • @param {string} expr メンバ定義文字列
  • @return {Ael.lang.Property} instanceプロパティ

クラスからメンバ定義文字列に該当するinstanceプロパティ定義を返す。

properties

ael properties([object properties]) : object
  • @version 0.2
  • @param {object} [properties] 追加するプロパティを定義したオブジェクト
  • @return {object} クラスが持つ全てのプロパティ定義

Aelオブジェクトが持つクラスに引数のオブジェクトに定義されたプロパティを追加する。
引数を未指定の場合はプロパティの追加は行わず、クラスに定義された全プロパティを持つオブジェクトを返す。

prototype

ael prototype(string expr) : Ael.lang.Property
  • @version 0.4
  • @param {string} expr メンバ定義文字列
  • @return {Ael.lang.Property} prototypeプロパティ

クラスからメンバ定義文字列に該当するprototypeプロパティ定義を返す。

static_

ael static_(string expr) : Ael.lang.Property
  • @version 0.4
  • @param {string} expr メンバ定義文字列
  • @return {Ael.lang.Property} staticプロパティ

クラスからメンバ定義文字列に該当するstaticプロパティ定義を返す。

superclass

ael superclass() : Ael.lang.Class
  • @version 0.2
  • @return {Ael.lang.Class} スーパークラス

Aelオブジェクトが持つクラスのスーパークラスを返す。
スーパークラスがない場合は未定義値を返す。