OSDN Git Service

Version 0.6.159, fix X.Class & X.XHR.Gadget.
[pettanr/clientJs.git] / 0.6.x / js / 01_core / 04_XObject.js
index 6d9941a..500ca49 100644 (file)
@@ -3,13 +3,12 @@
  * 但し for( name in object ) については構文解析エラーになる環境はありません。\r
  * @alias X.Object.inObject\r
  * @function\r
- * @param {string} name \r
+ * @param {string|number} 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
+       (function( name, obj, p ){\r
                if( obj[ name ] ) return true; // quick\r
                name += ''; // 数値も許可\r
                for( p in obj ){\r
@@ -17,7 +16,7 @@ var X_Object_inObject = X_UA[ 'IE' ] < 5.5 ? // TODO JScript で判定
                };\r
                return false;\r
        }) :\r
-       new Function( 'a,b', 'return a in b' );// なぜか ie5 でもerror\r
+       new Function( 'a,b', 'return a in b' );\r
 \r
 \r
 // ------------------------------------------------------------------------- //\r
@@ -35,6 +34,8 @@ X[ 'Object' ] = {
        \r
        'override'   : X_Object_override,\r
        \r
+       'clear'      : X_Object_clear,\r
+       \r
        'deepCopy'   : X_Object_deepCopy,\r
        \r
        // TODO rename to X.Array.copy\r
@@ -87,6 +88,20 @@ function X_Object_override( target, src ){
 };\r
 \r
 /**\r
+ * オブジェクトの全てのメンバーを破棄します。\r
+ * @alias X.Object.clear\r
+ * @param {object} obj。\r
+ */\r
+function X_Object_clear( obj, k ){\r
+       if( obj ){\r
+               for( k in obj ){\r
+                       delete obj[ k ];\r
+               };\r
+       };\r
+};\r
+\r
+\r
+/**\r
  * オブジェクト(object, Array)のメンバーを探索して、ディープコピーしたオブジェクトを返します。\r
  * オブジェクトが循環参照している場合は、既にコピーしているオブジェクトが現れた時点で、先に作成しているコピーの参照を返すので無限にループすることはありません。\r
  * @alias X.Object.deepCopy\r