* Class を定義し システムの管理下に置く.\r
* 全てのクラスと pool が有効の場合インスタンスへの参照が保持される.\r
* 1. X.Class.create( opt_settings, opt_name, opt_privateClass, opt_props ) でクラスを登録.\r
- * 2. コンストラクタ となるメソッドは、Constructor : function( arg ){ ... }, に書く.\r
+ * 2. コンストラクタ となるメソッドは、opt_props 内の Constructor : function( arg ){ ... }, に書く.\r
* 3. 通常通り new で インスタンス生成\r
* 4. kill() でオブジェクトをクリーンして削除、pool が有効の場合は pool される.\r
* 5. pool が有効の場合、new で pool されたインスタンスが返される.\r
X_Class_killPrivateFlag = false,\r
X_Class_traits = null,\r
X_Class_useObjectCreate = false, // !!Object.create, http://jsperf.com/prototype-vs-object-create-perf\r
- X_Class_use_proto_ = !!X.emptyFunction.prototype.__proto__;\r
+ X_Class_use_proto_ = !!X.emptyFunction.prototype.__proto__,\r
\r
-/* \r
- * X.Class.create で作られたクラスのインスタンスが共通で備えるメソッド \r
- */\r
-var X_Class_CommonProps = {\r
+/** \r
+ * X.Class.create で定義されたクラスのインスタンスが共通で備えるメソッド を格納\r
+ *\r
+ * @class\r
+ */ \r
+X_Class_CommonProps =\r
+\r
+{\r
+ /*\r
+ * インスタンスの破棄。\r
+ */\r
kill : function(){\r
var instance = this,\r
klass = X_Class_getClass( instance ),\r
// ------------------------------------------------------------------------- //\r
// --- interface ----------------------------------------------------------- //\r
// ------------------------------------------------------------------------- //\r
+\r
+/** @namespace */ \r
X.Class = {\r
- \r
+ /**\r
+ * インスタンスは破棄時(this.kill())に回収され、次回の new MyClass() 時に再利用されます。\r
+ * @memberof X.Class */\r
POOL_OBJECT : 1,\r
+ \r
+ /**\r
+ * 定義するクラスは抽象クラスになります。new AbstractClass() とするとエラーになります。\r
+ * @memberof X.Class */\r
ABSTRACT : 2,\r
+ \r
+ \r
+ /** @memberof X.Class */\r
FINAL : 4,\r
+ /** @memberof X.Class */\r
SUPER_ACCESS : 8,\r
+ /** @memberof X.Class */\r
PRIVATE_DATA : 16,\r
- \r
+ /** @memberof X.Class */\r
SINGLETON : 32, // 未実装\r
\r
create : function( /* displayName, classSetting, opt_PrivateClass, props */ ){\r
classDef.Constructor = props.Constructor;\r
};\r
\r
- klass = X_Closure_actualClosure( hash = { _ : X_Class_actualConstructor } ); // TODO hash = classDef\r
+ klass = X_Callback_actualClosure( hash = { _ : X_Class_actualConstructor } ); // TODO hash = classDef\r
hash.c = klass;\r
klass.superClassOf = X_Class_superClassOf;\r
klass.subClassOf = X_Class_subClassOf;\r