* 但し 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
};\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
\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
};\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