code: function ( val1, val2 ) {
              var result = false, isSame = true, val1Length, val2Length;
      
              if ( this.isArray(val1) && this.isArray(val2) ) {
                  val1Length = val1.length;
                  val2Length = val2.length;
      
                  if ( val1Length === val2Length && val1Length ) {
                      for ( var i = 0; i < val1Length; ++i ) {
                          if ( !this.isEqual(val1[i], val2[i]) ) {
                              isSame = false;
                              break;
                          }
                      }
                      result = isSame;
                  } else if ( !val1Length && !val2Length ) {
                      result = true;
                  } else {
      				result = ( val1 === val2 );
      			}
              } else if ( this.isObject(val1) && this.isObject(val2) ) {
                  val1Length = $B.object.length( val1 );
                  val2Length = $B.object.length( val2 );
      
                  if ( val1Length === val2Length && val1Length ) {
                      for ( var key in val1 ) {
                          if ( !this.isEqual(val1[key], val2[key]) ) {
                              isSame = false;
                              break;
                          }
                      }
                      result = isSame;
      			} else if ( !val1Length && !val2Length ) {
      				result = true;
      			} else {
                      result = ( val1 === val2 );
                  }
              } else {
                  result = ( val1 === val2 );
              }
      
              return result;
          }
docs: data 비교, Object, Array는 깊은 비교 (type까지 같아야 true)