code: def _join_index_objects(self, axis, other_index, how, sort=True):
          
          if isinstance(other_index, list):
              joined_obj = self.columns if not axis else self.index
              # TODO: revisit for performance
              for obj in other_index:
                  joined_obj = joined_obj.join(obj, how=how)
  
              return joined_obj
          if not axis:
              return self.columns.join(other_index, how=how, sort=sort)
          else:
              return self.index.join(other_index, how=how, sort=sort)
docs: Joins a pair of index objects (columns or rows) by a given strategy.
  
          Args:
              axis: The axis index object to join (0 for columns, 1 for index).
              other_index: The other_index to join on.
              how: The type of join to join to make (e.g. right, left).
  
          Returns:
              Joined indices.