OSDN Git Service

Version 0.6.132, fix X.Node._flags & fix X.EventDispatcher._listeners & start to...
[pettanr/clientJs.git] / 0.6.x / js / 01_core / 04_XObject.js
index e9d96df..283ade5 100644 (file)
@@ -1,4 +1,12 @@
-\r
+/**\r
+ * name in object 構文が使えない環境で構文解析エラーを回避するためにこのメソッドを使用します。\r
+ * 但し for( name in object ) については構文解析エラーになる環境はありません。\r
+ * @alias X.Object.inObject\r
+ * @function\r
+ * @param {string} name \r
+ * @param {object} obj \r
+ * @return {boolean} name が定義されている(値が undefined や null でも) -> true\r
+ */\r
 var X_Object_inObject = X_UA.IE < 5.5 ? // TODO JScript で判定\r
        (function( name, obj ){\r
                var p;\r
@@ -11,21 +19,35 @@ var X_Object_inObject = X_UA.IE < 5.5 ? // TODO JScript で判定
        }) :\r
        new Function( 'a,b', 'return a in b' );// なぜか ie5 でもerror\r
 \r
-\r
+/**\r
+ * Object に関するメソッドを集めたものです。\r
+ * @namespace X.Object\r
+ * @alias X.Object\r
+ */\r
 X.Object = {\r
+       // TODO rename to copy\r
        clone      : X_Object_clone,\r
        \r
        override   : X_Object_override,\r
        \r
        deepCopy   : X_Object_deepCopy,\r
        \r
+       // TODO rename to X.Array.copy\r
        cloneArray : X_Object_cloneArray,\r
        \r
        isEmpty    : X_Object_isEmpty,\r
        \r
        inObject   : X_Object_inObject\r
-};\r
        \r
+       // TODO hasOwnProperty\r
+};\r
+\r
+/**\r
+ * 単純なクローンでメンバーをコピーしたオブジェクトを返します。\r
+ * @alias X.Object.clone\r
+ * @param {object|Array} src コピー元のオブジェクトです。\r
+ * @return {object|Array}\r
+ */\r
 function X_Object_clone( src ){\r
        var ret, k;\r
        if( typeof src !== 'object' ) return src;\r
@@ -37,6 +59,13 @@ function X_Object_clone( src ){
        return ret;\r
 };\r
 \r
+/**\r
+ * オブジェクトにオブジェトのメンバーをコピーします。同じ名前のメンバーは上書きされます。\r
+ * @alias X.Object.override\r
+ * @param {object} target コピーされるオブジェクトです。返り値はこのオブジェクトです。\r
+ * @param {object} src コピー元のオブジェクトです。\r
+ * @return {object} target が返る。\r
+ */\r
 function X_Object_override( target, src ){\r
        var k;\r
        if( !X.Type.isObject( src ) ) return target;\r
@@ -47,6 +76,13 @@ function X_Object_override( target, src ){
        return target;\r
 };\r
 \r
+/**\r
+ * オブジェクト(object, Array)のメンバーを探索して、ディープコピーしたオブジェクトを返します。\r
+ * オブジェクトが循環参照している場合は、既にコピーしているオブジェクトが現れた時点で、先に作成しているコピーの参照を返すので無限にループすることはありません。\r
+ * @alias X.Object.deepCopy\r
+ * @param {object|Array} src コピー元のオブジェクトです。\r
+ * @return {object|Array}\r
+ */\r
 function X_Object_deepCopy( src ){             \r
        return X_Object_deepCopy_( src, [], [], -1 );\r
 };\r
@@ -78,6 +114,12 @@ function X_Object_deepCopy_( src, objSrc, objCopy, n ) {
        return ret;\r
 };\r
 \r
+/**\r
+ * 単純にメンバーをコピーした Array を返します。\r
+ * @alias X.Object.cloneArray\r
+ * @param {Array} ary コピー元のオブジェクトです。\r
+ * @return {Array}\r
+ */\r
 function X_Object_cloneArray( ary ){\r
        var ret = [],\r
                i = ary.length;\r
@@ -87,7 +129,13 @@ function X_Object_cloneArray( ary ){
        };\r
        return ret;\r
 };\r
-       \r
+\r
+/**\r
+ * object が空か?調べます。\r
+ * @alias X.Object.isEmpty\r
+ * @param {object} v \r
+ * @return {boolean}\r
+ */\r
 function X_Object_isEmpty( v ){\r
        var k;\r
        for( k in v ){\r