2 var X_Object_inObject = X_UA.IE < 5.5 ? // TODO JScript で判定
\r
3 (function( name, obj ){
\r
5 if( obj[ name ] ) return true; // quick
\r
8 if( p === name ) return true;
\r
12 new Function( 'a,b', 'return a in b' );// なぜか ie5 でもerror
\r
16 clone : X_Object_clone,
\r
18 override : X_Object_override,
\r
20 deepCopy : X_Object_deepCopy,
\r
22 cloneArray : X_Object_cloneArray,
\r
24 isEmpty : X_Object_isEmpty,
\r
26 inObject : X_Object_inObject
\r
29 function X_Object_clone( src ){
\r
31 if( typeof src !== 'object' ) return src;
\r
34 //if( X_EMPTY_OBJECT[ k ] ) continue;
\r
35 ret[ k ] = src[ k ];
\r
40 function X_Object_override( target, src ){
\r
42 if( !X.Type.isObject( src ) ) return target;
\r
44 //if( X_EMPTY_OBJECT[ k ] ) continue;
\r
45 target[ k ] = src[ k ];
\r
50 function X_Object_deepCopy( src ){
\r
51 return X_Object_deepCopy_( src, [], [], -1 );
\r
54 function X_Object_deepCopy_( src, objSrc, objCopy, n ) {
\r
56 if( !src ){ // 0, "", null, undefined, NaN, false
\r
59 if( X.Type.isArray( src ) ){
\r
60 i = objSrc.indexOf( src );
\r
61 if( i !== -1 ) return objCopy[ i ];
\r
62 objSrc[ ++n ] = src;
\r
63 objCopy[ n ] = ret = [];
\r
65 if( X.Type.isObject( src ) ){
\r
66 i = objSrc.indexOf( src );
\r
67 if( i !== -1 ) return objCopy[ i ];
\r
68 objSrc[ ++n ] = src;
\r
69 objCopy[ n ] = ret = {};
\r
71 // string, number, true
\r
75 //if( X_EMPTY_OBJECT[ k ] ) continue;
\r
76 ret[ k ] = clone( src[ k ], objSrc, objCopy, n );
\r
81 function X_Object_cloneArray( ary ){
\r
84 if( !i ) return ret;
\r
86 ret[ --i ] = ary[ i ];
\r
91 function X_Object_isEmpty( v ){
\r
94 //if( X_EMPTY_OBJECT[ k ] ) continue;
\r
95 return false;//if( v.hasOwnProperty && v.hasOwnProperty( p ) ) return false; ie4 で動かない、、、
\r
101 X.matchTest = function( array1, array2 ){
\r
102 var i = array2.length;
\r
104 if( array1.indexOf( array2[ --i ] ) === -1 ) return false;
\r