class_docstr: JavaScript language domain.
class_docstr_tok: ["JavaScript","language","domain","."]
code: def find_obj(
      self,
      env: BuildEnvironment,
      mod_name: str,
      prefix: str,
      name: str,
      typ: str | None,
      searchorder: int = 0,
  ) -> tuple[str | None, tuple[str, str, str] | None]:
      if name[-2:] == "()":
          name = name[:-2]
  
      searches = []
      if mod_name and prefix:
          searches.append(f"{mod_name}.{prefix}.{name}")
      if mod_name:
          searches.append(f"{mod_name}.{name}")
      if prefix:
          searches.append(f"{prefix}.{name}")
      searches.append(name)
  
      if searchorder == 0:
          searches.reverse()
  
      newname = None
      object_ = None
      for search_name in searches:
          if search_name in self.objects:
              newname = search_name
              object_ = self.objects[search_name]
  
      return newname, object_
  
imports: from __future__ import annotations
  import contextlib
  from typing import TYPE_CHECKING, Any, cast
  from docutils import nodes
  from docutils.parsers.rst import directives
  from sphinx import addnodes
  from sphinx.directives import ObjectDescription
  from sphinx.domains import Domain, ObjType
  from sphinx.domains.python import _pseudo_parse_arglist
  from sphinx.locale import _, __
  from sphinx.roles import XRefRole
  from sphinx.util import logging
  from sphinx.util.docfields import Field, GroupedField, TypedField
  from sphinx.util.docutils import SphinxDirective
  from sphinx.util.nodes import make_id, make_refnode, nested_parse_with_titles
label_desc: Use image node_id 7 for calling the JavaScriptDomain obj's underlying member method code with example usage: obj.find_obj(env, mod_name, prefix, name, typ, searchorder) and returns: newname,  object_